我们使用iText读取输入PDF,然后添加消息并保存输出。
PdfReader reader = new PdfReader(inputFilepath);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFilename, true));
PdfContentByte over = stamper.getOverContent(1);
over.beginText();
over.showTextAligned(align, text, x, y, angle);
...
over.endText();
stamper.close();
有没有办法读取单元测试中生成的PDF,然后检查所提供的文本是否存在于正确的x,y坐标?
答案 0 :(得分:2)
一般来说,don't test the platform(或者,在这种情况下,是您正在使用的第三方库。)相反,请测试您是否正确地与其进行了互动。
在这种情况下,这意味着假设showTextAligned()将做正确的事情,只要传入正确的坐标。我将专注于测试。
这可能意味着我需要隐藏与界面背后的PDF类的所有交互,并且我将该界面的模拟传递给计算代码,使用它来验证为给定的样本输入传递了正确的值。
答案 1 :(得分:-1)
作为一种快捷方式,您可以使用PdfReader.getPageContent(int pageNumber)测试特定页面中PDF中的文本顺序。
这不是理想的,但它可能是一个穷人的定位测试,假设你从左到右,从上到下打印文字。