Java 如何从PDF中提取文本?
我需要从罗马尼亚语言的PDF文件中提取文本。未使用pdfBox或Snowtide正确提取符号:ȚțȘșĂăÎî 以下是一个不起作用的示例文件: 有什么建议吗?关于iText:Java 如何从PDF中提取文本?,java,pdf,unicode,Java,Pdf,Unicode,我需要从罗马尼亚语言的PDF文件中提取文本。未使用pdfBox或Snowtide正确提取符号:ȚțȘșĂăÎî 以下是一个不起作用的示例文件: 有什么建议吗?关于iText: “iText®是一个开放源代码库,允许您创建和操作PDF文档。它使开发人员能够通过动态PDF文档生成和/或操作来增强web和其他应用程序。”恐怕OP所指的PDF()不提供根据规范提取文本所需的信息 尝试从AdobeReader复制和粘贴会导致特殊字符被错误导出,并且由于AdobeReader包含相当好的文本提取功能,这已
“iText®是一个开放源代码库,允许您创建和操作PDF文档。它使开发人员能够通过动态PDF文档生成和/或操作来增强web和其他应用程序。”恐怕OP所指的PDF()不提供根据规范提取文本所需的信息 尝试从AdobeReader复制和粘贴会导致特殊字符被错误导出,并且由于AdobeReader包含相当好的文本提取功能,这已经是一个坏迹象 检查文件会显示问题。让我们看一下标题 内容流的相应段是:
/F1 24 Tf
-148.44 -26.16 TD
(VIA}A {I ~NV|}|TURILE) Tj
296.88 0 TD
( ) Tj
-308.16 -29.28 TD
(SFANTULUI IERARH NIFON) Tj
让我们检查使用的字体F1:
469 0 obj
<<
/Type /Font
/Subtype /TrueType
/Name /F1
/BaseFont /TimesR
/FirstChar 32
/LastChar 255
/Widths [ 250 333 444 722 500 833 778 [...] 500 500 500 500 500 500 500 ]
/Encoding /WinAnsiEncoding
/FontDescriptor 468 0 R
>>
endobj
不过,您可能需要检查,例如Ă(大写字母A和brevis)是否总是作为|导出;这实际上并非不可能,在上个世纪的一段时间里,将特殊字符映射到符号的字符代码是相当普遍的。如果确实如此,则在提取文本后进行全局搜索和替换将为您提供所需的文本。请提供示例PDF。可能相关PDF未提供规范中文本提取所需的信息。此PDF:
468 0 obj
<<
/Type /FontDescriptor
/FontName /TimesR
/Flags 34
/FontBBox [ -167 -307 1009 913 ]
/StemV 90
/ItalicAngle 0
/CapHeight 913
/Ascent 913
/Descent -307
/FontFile2 474 0 R
>>
endobj
VIA}A {I ~NV|}|TURILE
SFANTULUI IERARH NIFON