java - 使用 Rectangle 选择 iText 中的文本

标签 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 是矩形的高度,但我不确定比例、如何测量以及它开始的确切点。 谁能为我解释一下或展示一些示例图片?

最佳答案

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

关于java - 使用 Rectangle 选择 iText 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19330464/

相关文章:

css - 将子 div 文本与父 div 对齐

html - 前端开发人员对撰稿人有什么期望?

java - Android:使用 HttpURLConnection 中的进度回调在 Cloudinary 中上传照片

JavaFX 图形故障

java - OpenCV用于在android中处理位图图像

java - itext从pdf中获取特殊字母

java - 在java中使用itext填写xfa pdf表单

javascript - 图像质量差使用 JSPDF 将 Google Charts 插入 PDF

C++ libcurl -- 从 ftp 下载 txt 文件并保存为字符串

java - 如何根据用户输入计算一年中的剩余天数