itextpdf:文档没有页面错误

时间:2019-06-25 10:16:05

标签: android itext mpandroidchart

我在使用ITextPdf的android应用中制作pdf文件时遇到问题。我正在尝试将MPAndroidChart折线图转换为位图,然后将其保存为pdf文件。

这是saveToPdf()方法的代码:

private void saveToPdf() {
    Bitmap bitmap = saveChartToBitmap();
    Document doc = new Document();
    File pdfCreated = new File(getBaseContext().getFilesDir() , "PDFCreated.pdf");
    try {
        PdfWriter.getInstance(doc, new FileOutputStream(pdfCreated));
        doc.open();

        Image image = Image.getInstance(bitmap);
        doc.newPage();
        doc.add(image);
        Toast.makeText(getBaseContext(), "Pdf created", Toast.LENGTH_SHORT).show();
    } catch (FileNotFoundException | DocumentException e) {
        e.printStackTrace();
    } finally {
        doc.close();
    }

还有我的saveChartToBitmap()方法:

private Bitmap saveChartToBitmap() {
    if (lineChart.getMeasuredHeight() <= 0) {
        lineChart.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        Bitmap b = Bitmap.createBitmap(lineChart.getMeasuredWidth(), lineChart.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        lineChart.layout(0, 0, lineChart.getMeasuredWidth(), lineChart.getMeasuredHeight());
        lineChart.draw(c);
        return b;
    } else {
        return null;
    }

}

不知道我转换为Bitmat或创建Image对象是否有误,但无法解决。我得到:该文档没有页面错误。所以我需要建议。

谢谢。

3 个答案:

答案 0 :(得分:0)

检查您的saveChartToBitmap()方法是否返回null。您还看到了吐司消息吗?

答案 1 :(得分:0)

我解决了我的问题。我没有将位图作为参数传递给Image.getInstance()方法,而是将其转换为字节数组,现在可以正常工作了。谢谢

答案 2 :(得分:0)

打开文档后,请立即在文档中添加一个空块,以免发生此异常。

doc.open;

doc.add(new Chunk(''));