【发布时间】:2018-06-02 14:25:03
【问题描述】:
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.text.PDFTextStripper;
public class sample {
public static void main(String[] args) throws InvalidPasswordException, IOException {
File file = new File("C:\\sample.pdf");
PDDocument document = PDDocument.load(file);
PDFTextStripper stripper = new PDFTextStripper();
String text = stripper.getText(document);
//java.io.PrintStream p = new java.io.PrintStream(System.out,false,"Cp921");
//p.println(text.toString());
System.out.println(text);
}
}
文本是从 pdf 中读取的,但在使用 System.out.println 显示时,它会显示不同的输出。
然后我在网上阅读了不同的帖子,发现它与编码有关,我在这个问题上找到了解决方案:Text extracted by PDFBox does not contain international (non-English) characters 但我不得不对拉脱维亚字符使用 Cp921 的编码,但我仍然没有解决问题并且输出在这张图片中给出了
然后我通过调试过程发现从PDF读取的文本以精确的编码存储,没有任何更改,所以我不知道如何以正确的编码显示文本。任何帮助都将提前非常感谢。
示例 PDF 内容:[Maksātājs、Informācija、Vārdu krājums、Ēģipte、Plašs、Vājš、Brieži、Pērtiķi、Grāmatiņa、šķīvis]
在 Eclipse 中使用 System.out.println 进行控制台输出:
在 Eclipse 中使用 PrintStream 进行控制台输出:
附:我是初学者,我没有太多的编码经验
【问题讨论】:
标签: java encoding pdfbox println printstream