1

iText APIを使用して、この画像をpdfファイルにエクスポートしたいSWT画像があります。この画像をディスクに保存してから、画像のパスを使用してPDFにエクスポートしようとしましたが、PDFの生成に時間がかかります。また、SWT 画像を A​​WT 画像に変換してから 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 ファイルが生成されますが、ページが空のようです。提案やその他のアプローチは大歓迎です。

ありがとうございました、

4

1 に答える 1

1

ページ サイズがゼロのようです。コンストラクタでA4などに設定してみてください。

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

于 2012-07-02T17:57:09.563 に答える