[英]How to get metadata for cropped PDF using PDFBox
我正在使用以下代碼來獲取每個字符的元數據
PDFTextStripper stripper = new PDFTextStripper()
{
@Override
protected void processTextPosition(TextPosition text)
{
System.out.println(text.toString()+" : " + text.getX() +" : " +text.getY());
}
}
上面的代碼工作正常。 現在,我裁剪了一部分pdf文件並保存了。 如果我在此裁剪的PDF上應用了相同的邏輯,它將給出父PDF中所有字符的元數據。
請為我建議如何獲取僅在裁剪的PDF中存在的字符元數據。
提前致謝。
裁剪后的PDF頁面本質上是為其定義了裁剪框的PDF頁面,即畫布上的矩形,並且PDF查看器知道應該只在該框內顯示內容。
如果在文本提取過程中要遵守該裁剪框,則只需按坐標進行過濾。 對於簡單的文本提取,可以通過使用PDFTextStripperByArea
並使用其getTextForRegion
方法來進行。
因為您不只是獲取文本剝離程序返回的字符串,而是通過重載在該類進行過濾之前調用的方法來注入代碼,所以您必須自己過濾。
請注意,您需要根據PDF頁面坐標系進行過濾,而不是根據頁面旋轉調整后的PDFTextStripper
坐標進行過濾,以便左上角為0,0 。 這意味着您必須使用TextPosition text
text.getTextMatrix().getTranslateX(), text.getTextMatrix().getTranslateY()
而不是text.getX(), text.getY()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.