【问题标题】:How to test PDF generated with PDFbox如何测试使用 PDFbox 生成的 PDF
【发布时间】:2021-04-15 07:29:06
【问题描述】:

我编写了一个读取 pdf 模板的类并添加了一些行,例如:

List<PdfTextLine> textLines = pdfBankActPage.getTextLines();
    if (textLines != null) {
        for (PdfTextLine textLine : textLines) {
            contentStream.setFont(cyrillicFont, textLine.getFontSize());
            contentStream.beginText();
            contentStream.newLineAtOffset(textLine.getOffsetX(), textLine.getOffsetY());
                        contentStream.showText(textLine.getText());
            contentStream.endText();
        }
    }

我的 util 类来存储一行信息:

public class PdfTextLine {

    private Integer offsetX;
    private Integer offsetY;
    private String text;
    private Integer fontSize;

如何测试 PDF 生成正确的常用方法是什么?

【问题讨论】:

  • 你追求什么样的测试?在发送之前测试您的程序本身测试其输出?单元测试?一些黑盒测试?其他一些测试类型?你想测试什么?确切的样子?仅仅是文本内容独立于其确切的定位和风格吗?还有什么?
  • @mkl 我想发送一条数据,按页面拆分,并检查所有部分是否都在正确的位置和正确的数据
  • 是的,但是你想要什么样的测试?查看我原始评论中的问题,了解我的意思。
  • 您可以运行 PDFStripperByArea 以确保文本位于特定位置。

标签: java automated-tests pdfbox


【解决方案1】:

由于您的问题缺乏细节,因此很难回答。 有多种方法可以验证您的内容是否已添加:

  1. 从 PDF 中提取文本并检查您的文本是否在其中

    PDFTextStripper stripper = new PDFTextStripper();
    stripper.setStartPage(pageNumber);
    stripper.setEndPage(pageNumber);
    stripper.setAddMoreFormatting(false);
    String text = stripper.getText(this.document);
    
  2. 使用像pdfcompare(它本身使用 Pdfbox)这样的库来直观地比较 pdf...

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 2012-02-13
    • 2015-03-23
    • 2015-10-02
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多