IText无法将现有图像从存储添加到PDF

时间:2018-04-20 10:02:19

标签: android itext pdf-generation android-bitmap

我正在创建一个需要从不同值创建PDF的应用程序。一切都很好,除非我尝试将外部存储器中的图像添加到我的pdf中。

我可以访问所述图像,并在调试器中预览它们,但是,我仍然无法弄清楚如何添加它们。

另一方面,我可以添加来自资产文件夹的图像。

以下是我的代码:

    PdfPTable photosTable = new PdfPTable(3);
    photosTable.setWidths(new float[]{33, 34, 33});

    File picFile = new File(imagePath);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    //I know the creation of the file object is redundant but it's the remains from older code
    Bitmap pix = BitmapFactory.decodeFile(picFile.getPath());
    pix.compress(JPEG, 100, baos);

    Image pic = Image.getInstance(baos.toByteArray());
    PdfPCell picCell = new PdfPCell(pic, true);
    picCell.setBorder(Rectangle.NO_BORDER);
    photosTable.addCell(picCell);

    pdf.add(photosTable);

有谁知道我做错了什么?我可以在调试器中访问和预览图像,所以我不认为我有路径问题。

非常感谢你的帮助,

亲切, Matthieu Meunier

1 个答案:

答案 0 :(得分:0)

经过与同事的一些研究后,我们发现,为了显示表格,iText需要一行的每一列都存在。

我的意思是,我试图添加一个" 3圆柱"表2图像。

因此,为避免表格不显示,只需添加一些空单元格:

PdfPCell whiteCell = new PdfPCell();
whiteCell.addElement(Chunk.NEWLINE);
photosTable.addCell(whiteCell);

或者更简单地说,如果您不需要任何特殊的单元格格式

photosTable.addCell(Chunk.NEWLINE);

我希望这会对你们中的一些人有所帮助。

此致 马修