我有一个 SWT 图像,我想使用 iText API 将此图像导出为 pdf 文件。我尝试将此图像保存在磁盘上,然后使用图像的路径将其导出为 pdf,这需要大量时间来生成 pdf。我也尝试过将 SWT 图像转换为 AWT 图像,然后将其导出为 pdf,这种方法需要更多时间来生成 pdf。我一直在尝试的另一种方法是使用 ImageLoader 对象将图像的原始数据转换为 jpeg byteArrayOutputStream,如下所示:
ImageLoader tempLoader = new ImageLoader();
tempLoader.data = new ImageData[] {
image.getImageData()
};
ByteArrayOutputStream bos = new ByteArrayOutputStream();
tempLoader.save(bos, SWT.IMAGE_JPEG);
现在我使用这个 ByteArrayOutputStream 作为输入
OutputStream outStream = new FileOutputStream(selectedPathAndName);
Document document = new Document();
document.setMargins(0,0,0,0);
document.setPageSize(new Rectangle(0,0,width,height));
PdfWriter.getInstance(document, outStream);
document.open();
com.itextpdf.text.Image pdfImage = com.itextpdf.text.Image.getInstance(bos.toByteArray());
document.add(pdfImage);
document.close();
这会生成具有我设置的宽度和高度的 pdf 文件,但页面似乎是空的。任何建议或任何其他方法都是最受欢迎的。
谢谢,