ImageDevice.processを使ってPDF⇒PNGへの変換をしています。
これをやるとだいぶ画質が荒くなってしまうのですが、何か別メソッド使うなどして画質をPDFに近いものとすることはできないでしょうか。
pngDeviceでResolutionの値を
72と100で検証しておりました。(すみませんが、すぐに出せる検証のサンプルがありません。)
PDF⇒PNG⇒PDFとした処理を複数回繰り返したときに目視の確認ですが
72とした場合:1回目のPDF⇒PNGの際に画質が落ちるが、2回目以降はあまり変わらない
100とした場合:1回目のPDF⇒PNGの際に画質はそこまで落ちないが、2回目以降に段階的に画質が落ちていく
といった事象を確認しています。
追加で以下の2点教えていただけないでしょうか。
・Resolutionに設定する適切な値などがあるか
・pngDevice以外で画質を落とさないように処理する方法がないか。
ソース PDF ドキュメントに完全に依存します。画像がどのように保存されているか。ページ全体を画像に変換する代わりに画像を抽出したい場合は、以下のコード スニペットを使用できます。
// For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open document
Document pdfDocument = new Document(dataDir+ "ExtractImages.pdf");
// Extract a particular image
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];
FileStream outputImage = new FileStream(dataDir + "output.jpg", FileMode.Create);
// Save output image
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();
dataDir = dataDir + "ExtractImages_out.pdf";
// Save updated PDF file
pdfDocument.Save(dataDir);
また、サンプルの PDF ドキュメントが必要であることにも注意してください。これは、私たちの環境で再現せずにこの問題についてさらにコメントすることはできないためです。調査をさらに進め、それに応じてフィードバックを共有できるように、サンプル PDF をいくつか共有してください。