6

以前のスタック オーバーフローに関する質問のコードを使用します。

System.Drawing.Bitmap image;
ShellFile f = ShellFile.FromFilePath(fileLocation);
image = f.Thumbnail.ExtraLargeBitmap;
image.Save(tempfile, ImageFormat.Png);

ウィンドウ API を使用して PDF のサムネイルを取得しようとしています。

これにより、PDF ドキュメントの最初のページに似た画像ファイルが生成されると思われます。

ただし、実際にはそのようには見えず、単に PDF アイコンのように見えます。

これが実際に意図したとおりに機能する前に必要なものが不足していますか?

PDF ファイルは Adob​​e Reader と正しく関連付けられています。

Windows エクスプローラーでディレクトリを参照すると、ドキュメントに関連付けられたサムネイルが表示されます。

Excel および Word ドキュメントを処理する場合、コードは実際にはサムネイルを正しく抽出することに注意してください。

編集(参照):

4

3 に答える 3

1

問題は、サムネイルを作成するアクティブなフレームを選択していないためです。

Windows API がないため、現在のマシンでは確認できませんが、コードでサムネイルに使用するページを指定していないため、標準の PDF サムネイルが表示されます。

次のようにしてみてください。

        Image image = new Image();
        //Load image here
        int frameindex = 1; // Page number you want to use for thumbnail
        Guid guide = image.FrameDimensionsList[0];
        FrameDimension fDimension = new FrameDimension(guide);
        image.SelectActiveFrame(fDimension, frameindex);
        //Then go on to extract your thumbnail
于 2013-08-15T22:20:33.223 に答える
0

PDF ファイルに対して ExtraLargeBitmap を機能させることはできませんでしたが、他のすべてのサイズ (Large、Medium、および Small) は正常に機能しました。

Dim MyShellFile As ShellFile = ShellFile.FromFilePath(fi.FullName)
Dim MyThumbNail As Image
MyShellFile.Thumbnail.FormatOption = ShellThumbnailFormatOption.ThumbnailOnly
MyThumbNail = MyShellFile.Thumbnail.LargeBitmap
Me.PictureBox2.Image = MyThumbNail
于 2014-11-19T16:00:49.283 に答える