8

iText(具体的にはiTextSharp 4.1.6)を使用しており、既存のPDFのページを結合するだけでなく、画像から作成された新しいページを挿入してPDFを作成したいと考えています。

これらの2つの部分は、それぞれPdfCopyとPdfWriterを使用して別々に機能しています。画像からページを作成するコードは次のようになります。

PdfWriter pw = PdfWriter.GetInstance(doc, outputStream);
Image img = Image.GetInstance(inputStream);
doc.Add(img);
doc.NewPage();

さて、PdfCopyはPdfWriterを継承しているので、同じ手法を使用してそのような「画像ページ」をPdfCopyオブジェクトに追加できると思いましたが、機能しません(上記の例でPdfWriterの代わりにPdfCopyをインスタンス化した場合) 、ページには何も表示されません)。

ソースコードをざっと見てみると、PdfCopyのコンストラクターがスーパークラスコンストラクターを呼び出すと、渡されたオブジェクトではなく、新しいDocumentオブジェクトを使用して呼び出されることがわかります。これが理由だと思います。

これについてもっと良い方法はありますか?現時点では、PdfWriterを使用して画像から単一ページのPdfを作成し、それをPdfCopyを使用してドキュメントに追加するのが最善の推測ですが、これは少し回避策のようです。

4

2 に答える 2