2017-08-30 11 views
0

Byte []配列のリストにいくつかのPDFをロードしました。 これらのPDFの最初のページをWPF形式で表示したいとします。可能であれば、イメージコントロールは問題ありません。 しかし、私は離れてローカルマシン上のPDFファイルにバイトを書き込むことから離れて滞在したいと思います。ローカルマシンにバイトを書き込まないでバイト配列からPDFをプレビューする

質問: はどのように私はPDF(既にメモリ内)のバイト[]を取り、ローカルマシンにPDFを記述することなく、画像制御におけるPDFの最初のページを表示することができますか?

答えて

2

あなたはPDFをディスクに書き込む必要はありません。あなたはそれを記憶しておくことができます。ただし、メモリ内のオブジェクトとしてPDFを完全に読み込む必要があります。

ここでは、C#でPDF画像を変換する方法に関するMicrosoftの記事があります。これは、あなたにとって良い出発点になると思います。次の例は下のリンクからのものですが、あなたの必要条件ではforループをスキップし、最初のページを変換するだけです。 PdfImageConverterオブジェクトをインスタンス化するときに、複数のオーバーロードが存在することに注意してください.1つはストリーム内にあり、これはバイト[]です。これは、VB.NETで書かれていますが、プロセスがなる

https://www.codeproject.com/Articles/5887/Generate-Thumbnail-Images-from-PDF-Documents

PdfImageConverter pdfConverter = new PdfImageConverter("sample.pdf"); 

pdfConverter.DPI = 96; 

for (int i = 0; i < pdfConverter.PageCount; i++) 
{  
    Image pageImage = pdfConverter.PageToImage(i, 500, 800); 

    pageImage.Save("Page " + i + ".jpg", ImageFormat.Jpeg); 
} 

https://code.msdn.microsoft.com/windowsdesktop/How-to-Convert-PDF-to-84ac3273


コードプロジェクトは、PDFからサムネイルを作成するための答えを持っている(VB.NET) C#と同じです。


またあなたのために働くだろう画像にPDFを回すことについて、別のSOの質問もあります:

Save pdf to jpeg using c#

あなたが要件(ライブラリは、APIの、など)のいずれかの種類を持っていますが解決策にも影響する可能性がありますか?もしそうなら、私はこの答えを更新します。

関連する問題