PDFファイルをページ単位で分割し、各ページファイルのバイト配列を取得しようとしています。しかし、C#のiTextバージョン7.0.4では、各ページをバイト配列に変換するのに問題があります。iText 7.0.4.0 - PdfDocumentをバイト配列に変換する
他の解決方法で参照されるメソッドは、PdfWriter.GetInstanceまたはPdfCopyに依存していますが、これはiTextバージョン7.0.4では存在しなくなっているようです。
私はiTextのサンプルコードとAPIドキュメントを見てきましたが、そこから有用な情報を抽出することができませんでした。
using (Stream stream = new MemoryStream(pdfBytes))
using (PdfReader reader = new PdfReader(stream))
using (PdfDocument pdfDocument = new PdfDocument(reader))
{
PdfSplitter splitter = new PdfSplitter(pdfDocument);
// My Attempt #1 - None of the document's functions seem to be of help.
foreach (PdfDocument splitPage in splitter.SplitByPageCount(1))
{
// ??
}
// My Attempt #2 - GetContentBytes != pdf file bytes.
for (int i = 1; i <= pdfDocument.GetNumberOfPages(); i++)
{
PdfPage page = pdfDocument.GetPage(i);
byte[] bytes = page.GetContentBytes();
}
}
ご協力いただければ幸いです。
あなたが扱っています圧縮pdf?個々のページを圧縮しても、ファイル全体が圧縮されたときと同じバイトにはなりません。だから、 "ファイル内の同じバイトを返す"よりも成功を定義する良い方法が見つかるはずです –
いいえ、私は非圧縮PDFファイルを扱っています。私が必要としたのは、PDFファイルを分割し、後で使用するために分割ページを格納する機能でした。それらが分割されると、元の文書を戻すことを心配する必要はありません。 –