【问题标题】:Find a given text position in PDF file在 PDF 文件中查找给定的文本位置
【发布时间】:2022-01-07 06:50:06
【问题描述】:

我有一个 pdf 文件,我想找到位置/获取上面文本的高度和宽度。到目前为止,我只能自己手动给出职位,理想情况下我想获得这个职位。下面是我的代码:

PdfReader pdfReader = new PdfReader("c:/users/qasimovn/desktop/0011E06210410008 __v3.pdf");

PdfStamper pdfStamper = new PdfStamper(pdfReader,
    new FileOutputStream("c:/users/qasimovn/desktop/newSened.pdf"));

Image image = mage.getInstance("c:/users/qasimovn/desktop/imza.jpg");

for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) {

    PdfContentByte content = pdfStamper.getOverContent(i);
    image.setAbsolutePosition(400 f, 50 f);
    content.addImage(image);
}

【问题讨论】:

  • “查找文本位置”是什么意思?你想用你的代码实现什么?
  • 您使用哪个 itext 版本?如果是 5.5.x,则可以使用 itext 解析框架来查找某些文本在页面内容中的位置。如果是 2.1.x,那这个框架可能还不存在。
  • @CodeAddict 我想找到我输入的任何单词的位置。然后我想将我找到的位置发送到这个方法中。 image.setAbsolutePosition(400f, 50f);

标签: java itext


【解决方案1】:

TEXT 7 允许您根据不同的策略解析 pdf 文件。下面是一个如何使用 TextMarginFinder 查找 TextRectangle 的示例。其余的策略都继承自 EventListener。

    public static final String src
        = "./src/main/resources/pdfs/preface.pdf";
  
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(src));
    TextMarginFinder strategy = new TextMarginFinder();
    PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);

    for (int i = 1; i <= pdfDoc.getNumberOfPages(); i++) {
        parser.processPageContent(pdfDoc.getPage(i));
        Rectangle textRectangle = strategy.getTextRectangle();
        float left = textRectangle.getLeft();
        float right = textRectangle.getRight();
        float width = textRectangle.getWidth();
      //float etc...
    }
    pdfDoc.close();

【讨论】:

    猜你喜欢
    • 2018-05-09
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多