[英]Using Rectangle to select text in iText
這是“iText in action”中使用矩形選擇文檔的一部分以從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)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.