Java:如何将PDF写入文本文件?

Java:如何将PDF写入文本文件?,java,pdf,text,itext,Java,Pdf,Text,Itext,当我打开一个PDF文件并将内容写入一个文本文件时,文本文件中的内容就乱七八糟了。我想这是因为编码。据我所知,默认字符集设置为Cp1252(因为我在Windows XP上运行)。我更改了默认字符集,但没有结果(System.setProperty(“file.encoding”,“ISO-8859-1”);) 我尝试使用IText,但结果内容缺少一些带变音符号的字母 有什么想法吗?PDF是一个二进制文件,因此您不能将其作为文本文件读取。您必须寻找一些第三方库来阅读PDF内容 PDF是一个二进制

当我打开一个PDF文件并将内容写入一个文本文件时,文本文件中的内容就乱七八糟了。我想这是因为编码。据我所知,默认字符集设置为
Cp1252
(因为我在Windows XP上运行)。我更改了默认字符集,但没有结果(
System.setProperty(“file.encoding”,“ISO-8859-1”);

  • 我尝试使用IText,但结果内容缺少一些带变音符号的字母

有什么想法吗?

PDF是一个二进制文件,因此您不能将其作为文本文件读取。您必须寻找一些第三方库来阅读PDF内容

PDF是一个二进制文件,因此您不能将其作为文本文件读取。您必须寻找一些第三方库来阅读PDF内容

iText是一个从头开始创建pdf的API,但为了读取和编辑现有文件,您可以查看以下链接

iText是一个从头开始创建pdf的API,但为了读取和编辑现有文件,您可以查看以下链接
你可以试试。它为您提供了一个API来完成这项工作。您可以从PDFReader类调用方法
extractTextFromPage(int-pageIndex)

您可以尝试。它为您提供了一个API来完成这项工作。您可以从PDFReader类调用方法
extractTextFromPage(int-pageIndex)

iText无法正确读取所有字母的原因可能是字体使用的编码。您可以声明如下字体:

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);

其中BaseFont.CP1252是使用的编码。请注意,某些字体不支持所有类型的编码。

iText无法正确读取所有字母的原因可能是字体使用的编码。您可以声明如下字体:

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);

其中BaseFont.CP1252是使用的编码。请注意,有些字体不支持所有类型的编码。

您必须使用专门的软件包。我使用的两个是pdftotext()和PDFBox()。即使有一个软件包,你也不能总是保证成功,因为有些PDF编写工具质量很差,生成的PDF也很差。

你必须使用专门的软件包。我使用的两个是pdftotext()和PDFBox()。即使使用软件包,您也无法始终保证成功,因为某些PDF编写工具的质量很差,生成的PDF也很差。

使用iText助手类PDFTextractor应该可以正常工作。将文件写入磁盘时,只需检查您使用的编码是否正确:

OutputStreamWriter out = new OutputStreamWriter( new FileOutputStream(file),"ISO-8859-1") );

使用iText帮助器类PDFTextractor应该可以正常工作。将文件写入磁盘时,只需检查您使用的编码是否正确:

OutputStreamWriter out = new OutputStreamWriter( new FileOutputStream(file),"ISO-8859-1") );
我们的库提供了对变音符号以及Unicode标准中定义的所有字符集(包括水平和垂直书写模式下的中文、日文和韩文字符)的全面支持。您可能会发现,它正确地提取了其他工具无法提取的变音符号

在某些情况下,当字符被提取为文本时,它看起来与由类似Acrobat的PDF阅读器显示的字符不一样——这通常是使用基于图像的字体呈现文本时的情况(显然不会直接转换为文本,并且需要OCR过程才能导出正确的重音字符。)

我们的库为变音符号以及Unicode标准中定义的所有字符集提供了全面的支持(包括水平和垂直书写模式下的中文、日文和韩文字符)。您可能会发现,它可以正确地提取这些变音符号,而其他工具则不能


在某些情况下,当字符被提取为文本时,它看起来与由类似Acrobat的PDF阅读器显示的字符不一样——这通常是使用基于图像的字体呈现文本时的情况(显然不会直接转换为文本,并且需要OCR过程才能导出正确的重音字符).

您的权利感谢您的回复…我尝试过使用IText,但结果内容中缺少一些带变音符号的字母有什么想法?谢谢您的权利感谢您的回复…我尝试过使用IText,但结果内容中缺少一些带变音符号的字母有什么想法吗?谢谢我尝试过使用IText,但结果内容中没有结果内容中缺少了一些带变音符号的字母。有什么想法吗?谢谢我尝试使用IText,但结果内容中缺少了一些带变音符号的字母。有什么想法吗?非常感谢,你的建议解决了部分问题:D谢谢,非常感谢,你的建议解决了部分问题:D谢谢你的回答让我的工作轻松了很多,但它仍然没有解决我的一些发音问题谢谢你的回答让我的工作轻松了很多,但它仍然没有解决我的一些发音问题