我正在创建一个需要从不同值创建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
答案 0 :(得分:0)
经过与同事的一些研究后,我们发现,为了显示表格,iText需要一行的每一列都存在。
我的意思是,我试图添加一个" 3圆柱"表2图像。
因此,为避免表格不显示,只需添加一些空单元格:
PdfPCell whiteCell = new PdfPCell();
whiteCell.addElement(Chunk.NEWLINE);
photosTable.addCell(whiteCell);
或者更简单地说,如果您不需要任何特殊的单元格格式
photosTable.addCell(Chunk.NEWLINE);
我希望这会对你们中的一些人有所帮助。
此致 马修