Java 如何从PDF中提取文本?

Java 如何从PDF中提取文本?,java,pdf,unicode,Java,Pdf,Unicode,我需要从罗马尼亚语言的PDF文件中提取文本。未使用pdfBox或Snowtide正确提取符号:ȚțȘșĂăÎî 以下是一个不起作用的示例文件: 有什么建议吗?关于iText: “iText®是一个开放源代码库,允许您创建和操作PDF文档。它使开发人员能够通过动态PDF文档生成和/或操作来增强web和其他应用程序。”恐怕OP所指的PDF()不提供根据规范提取文本所需的信息 尝试从AdobeReader复制和粘贴会导致特殊字符被错误导出,并且由于AdobeReader包含相当好的文本提取功能,这已

我需要从罗马尼亚语言的PDF文件中提取文本。未使用pdfBox或Snowtide正确提取符号:ȚțȘșĂăÎî

以下是一个不起作用的示例文件:

有什么建议吗?

关于iText:


“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