PDF Box创建ZeroByte PDF

时间:2017-10-09 11:08:29

标签: java pdf text unicode pdfbox

我正在尝试使用PDF框将unicode文本文件转换为PDF。

任务: 我的方法将unicode编码的TextFile作为输入并输出PDF文件。

问题: 创建的PDF具有零字节。它没有写任何东西。

我正在使用 Apache PDFBox 2.0.6

这是我的代码:

public class TexttoPDF {

    public File texttoPDF(File textFile) throws Exception {

        PDDocument document = new PDDocument();
        PDPage blankPage = new PDPage();
        PDFont font = PDType1Font.TIMES_ROMAN;
        PDPageContentStream contentStream = new PDPageContentStream(document, blankPage);




        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(textFile), "UTF8"));


        String str;
        contentStream.beginText();
        contentStream.setFont( font, 12 );
        contentStream.moveTextPositionByAmount( 100, 700 );


        while ((str = in.readLine()) != null) {
            contentStream.drawString(str);


        }


        contentStream.endText();

        document.save( pdffile.getName());
        contentStream.close();
        document.close();
        in.close();



    return pdffile;

    }
}

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在保存之前关闭您的内容流,而不是在保存之后。所以改变

    document.save( pdffile.getName());
    contentStream.close();

    contentStream.close();
    document.save( pdffile.getName());

(这是described in the FAQ

在调用new PDPage()后,将页面添加到您的文档中:

document.addPage(blankPage);