我正在使用iText库阅读PDF
PdfReader reader = new PdfReader(dir1 + iFileName);
for(int iCount=1; iCount<=reader.getNumberOfPages(); iCount++){
String pageText = PdfTextExtractor.getTextFromPage(reader, iCount);
System.out.println(pageText);
}
它也在阅读隐藏的文字;有人可以建议我需要设置哪个属性,以便它不读取隐藏文本?
答案 0 :(得分:0)
PDF中的每一个额外的不可见文本都是从坐标0,0(左下角)开始使用渲染模式3绘制的(既不是填充也不是笔划文本(不可见))。
在这种情况下,应该通过渲染模式进行过滤。为此,您必须明确将策略设置为过滤策略。
您在代码中使用的var notification = Titanium.Android.createNotification({
contentTitle: 'Notification 2',
contentText : 'Just another notification',
contentIntent: Ti.Android.createPendingIntent({intent: Ti.Android.createIntent({})}),
icon: Ti.App.Android.R.drawable.warn,
number: 5,
when: new Date().getTime(),
// Sound file located at /platform/android/res/raw/sound.wav
sound: Ti.Filesystem.getResRawDirectory() + 'sound.wav',
});
重载
getTextFromPage
定义为
String pageText = PdfTextExtractor.getTextFromPage(reader, iCount);
因此,您隐式使用了public static String getTextFromPage(PdfReader reader, int pageNumber) throws IOException{
return getTextFromPage(reader, pageNumber, new LocationTextExtractionStrategy());
}
。现在你必须过滤这个策略,例如通过从代码中替换该行,如下所示:
LocationTextExtractionStrategy