使用sun PDF Renderer显示带有嵌入字体的PDF

时间:2009-10-20 17:26:45

标签: java pdf

我在使用Sun的PDF Renderer软件包查看带有嵌入字体的PDF时遇到问题。我有以下代码,它在PDF的每个页面中创建一个BufferedImage,以便在我的应用程序中查看,并且在没有嵌入字体时它可以正常工作。但是,当PDF嵌入了字体时,它不显示任何文本。有任何想法吗?此外,它在Adobe的PDF查看器中打开。

File f = new File("C:\\test.pdf");
FileChannel fc = new RandomAccessFile(f, "r").getChannel();
PDFFile pdfFile = new PDFFile(fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()));
for(int x=0; x<pdfFile.getNumPages(); x++) {
    try {
        BufferedImage bi = (BufferedImage)pdfFile.getPage(x+1).getImage(
            (int)pdfFile.getPage(x+1).getWidth(),
            (int)pdfFile.getPage(x+1).getHeight(),
            new Rectangle((int)pdfFile.getPage(x+1).getWidth(),
            (int)pdfFile.getPage(x+1).getHeight()),
             null, true, true);
    }
    catch (Exception e) {
        e.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:1)

我通过将PDF渲染器从PDFRenderer更改为PDFBox来解决这个问题,后者效果更好。有关详细信息here

答案 1 :(得分:1)

您还可以查看提供开源PDF工具的Icesoft,IText,JPedal和Multivalent。