代码之家  ›  专栏  ›  技术社区  ›  Arun Kumar

PDF框创建零字节PDF

  •  0
  • Arun Kumar  · 技术社区  · 7 年前

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

    我的方法将unicode编码的文本文件作为输入,并输出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 回复  |  直到 7 年前
        1
  •  0
  •   Tilman Hausherr    7 年前

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

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

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

    (这是 described in the FAQ )

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

    document.addPage(blankPage);