PDFBox 创建零字节 PDF

PDF Box Creates ZeroByte PDF

我正在尝试使用 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;

    }
}

如何解决这个问题?

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

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

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

(这是described in the FAQ

在调用 new PDPage():

后也将页面添加到您的文档中
document.addPage(blankPage);