簡単な操作を実行しようとしています:.NET Framework 4.0とMVCを使用して、PDFシャープのv1.32.2608.0でゼロから生成されたPDFファイル内に写真(JPGファイル)を追加しています。 NETPDFshow、PDFでJPGを表示する際にエラーが発生しました
私はこのアクションを実行するために、次のコードを使用しています:
PdfDocument doc = new PdfDocument();
PdfPage pag = doc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pag);
Image foto = Image.FromStream([stream]);
XImage xfoto = XImage.FromGdiPlusImage(foto);
gfx.DrawImage(xfoto, 30, 130, 380, 250);
MemoryStream stream = new MemoryStream();
doc.Save(stream, false);
問題は、私はPDFファイルを開くと、画像が、間違って破損し、壊れているように見える...私にはないということですそれを説明する方法を知っている、あなたは元の写真と次のpublic Dropbox folderで生成されたPDFをダウンロードして結果を見ることができます。
このエラーは一貫していません。一部の写真にはこの問題があり、他のものには問題がありません。理由はわかりません。たぶんファイル内の形式なのでしょうか?それが問題であれば、どのフォーマットが有効ですか?
ご協力いただければ幸いです。
編集:私が指摘したことは、どのプログラムでPDFを視覚化するかによって、間違ったイメージが違って見えるということです。たとえば、Dropboxのビジュアライザを使用してPDFを表示すると(リンクiを使用して)、画像は正常に表示されます。 ChromeのPDFビューアを使用している場合、画像は間違っていますが、白黒や縞模様でしか表示されません。 Adobe Acrobat Reader DCを使用している場合、画像はまだ間違っていますが、完全に認識されません。
編集2:私はPDFSharp v1.50.4000(beta 3)に変更して、おそらくライブラリの問題だが問題はまだ同じかどうかを確認しました。コードは、新しいバージョンで、次の通りである:あなたがPDFsharp 1.50以降を使用するとXImage.FromStream
の代わりImage.FromStream
プラスXImage.FromGdiPlusImage
を使用するときにJPEG画像の
PdfDocument doc = new PdfDocument();
PdfPage pag = doc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pag);
XImage xfoto = XImage.FromStream([stream]);
gfx.DrawImage(xfoto, 30, 130, 380, 250);
MemoryStream stream = new MemoryStream();
doc.Save(stream, false);
あなたの編集を考えると、おそらくjpg自体に問題があります...それを検査のために共有できますか? – mkl
@mkl画像はDropboxで見つけることができます(コードボックスの下のテキストのリンクを参照)。 –