使用矩形在iText中选择文本

时间:2013-10-12 04:14:32

标签: java pdf text itext

这是“iText in action”中使用Rectangle选择文档的一部分以从pdf文件中提取文本的示例:

PdfReader reader = new PdfReader(pdf);
PrintWriter out = new PrintWriter(new FileOutputStream(txt));
Rectangle rect = new Rectangle(70, 80, 420, 500);
RenderFilter filter = new RegionTextRenderFilter(rect);
TextExtractionStrategy strategy;
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
    strategy = new FilteredTextRenderListener(
     new LocationTextExtractionStrategy(), filter);
     out.println(PdfTextExtractor.getTextFromPage(reader, i, strategy));
}
out.flush();
out.close();

我不明白这些数字的含义(70,80,420,500)。通常,(70,80)是坐标,420是宽度,500是矩形的高度,但我不确定比例,它是如何测量的以及它开始的确切点。 任何人都可以为我解释一下或展示一些示例图片吗?

1 个答案:

答案 0 :(得分:1)

在这种情况下,你有两个坐标:x = 70,y = 80是左下角坐标; x = 420,y = 500是右上角坐标。 PDF中使用的单位是“用户单位”。默认情况下,1个用户单位等于1个点,但可以使用/UserUnit键更改默认值。正如mkl在他的评论中指出的那样,MediaBox定义了页面大小。但是,您还可以使用CropBox定义页面的可见区域(如果存在,CropBox应始终小于MediaBox)。