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());
在调用 new PDPage()
:
后也将页面添加到您的文档中
document.addPage(blankPage);
我正在尝试使用 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());
在调用 new PDPage()
:
document.addPage(blankPage);