0

アップロードした PDF ファイルのサムネイルを自分の Web サイト (ASP.NET) に表示したい。これまでのところ、次のことを行ってきました。

  1. このリンクから、ghostscript を使用するというアイデアを得ました PDF ファイルの一部のページのサムネイルを生成するにはどうすればよいですか?

おそらく、汎用 PDF ライブラリの 1 つを使用することができます。上記のオプションのいずれかが機能しない場合は、組み込むことができる場合があります。

  1. 次に、PDFサムネイルを生成します(オープンソース/無料)は、言及されたラッパーを探すように私に言いました

Matthew Ephraim は、Ghostscript のオープン ソース ラッパーをリリースしました。これは、C# で実行されているように見えます。ソースコードへのリンク: https://github.com/mephraim/ghostscriptsharp ブログ投稿へのリンク: http://www.mattephraim.com/blog/2009/01/06/a-simple-c-wrapper-for-ghostscript / GeneratePageThumb メソッドを簡単に呼び出してサムネイルを生成できます (または、GeneratePageThumbs を開始ページ番号と終了ページ番号とともに使用して、複数の個別ページのサムネイルを生成し、各ページが個別の出力ファイルになります)。デフォルトのファイル形式は jpeg ですが、代替の GenerateOutput メソッド呼び出しを使用して、ファイル形式、ページ サイズなどのオプションを指定することで、それを変更したり、他の多くのオプションを変更したりできます。

http://mattephraim.com/blog/2009/01/06/a-simple-c-wrapper-for-ghostscript/の指示に従いながら、Windows 8 64 ビットのシステムに Ghostscript をインストールしました。

今、私は上記の男によるテストプロジェクトを含むソリューションを作成しました。私自身のプロジェクトでは、彼のプロジェクトの関数を呼び出しています

try
        {
            GhostscriptSharpTests.GhostscriptSharpTests ss = new GhostscriptSharpTests.GhostscriptSharpTests();
            ss.GenerateSinglePageThumbnail();
        }
        catch (Exception ex)
        { 

        }

しかし、例外が発生しています:

DLL 'gsdll32.dll' をロードできません: 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)

4

3 に答える 3

1

エラーについて:

表示されるエラーは、gsdll32.dll が見つからないか、使用した Ghostscript バージョンが間違っていることが原因である可能性があります。64 ビット システムの場合、gsdll64.dll を含む 64 ビット Ghostscript ライブラリをインストールする必要があります。AnyCPU プラットフォーム ターゲット用にアプリケーションをコンパイルすると、64 ビット システム上で 64 ビット プロセスとして実行され、gsdll64.dll が必要になります。アプリケーションを x86 としてコンパイルし、64 ビット システムで実行すると、アプリケーションは 32 ビット プロセスとして実行され、gsdll32.dll を使用できます。DllImport を使用する場合は、呼び出そうとしている dll が、アプリケーションが実行する同じ (bin) フォルダーにあるか、windows\system にあることを確認してください。カスタム dll の場所が必要な場合は、DllImport ( [DllImport("C:\Program Files\gs\gs9.14\bin\gsdll32.dll", EntryPoint = "gsapi_new_instance")]) でフル パスを使用できますが、これは通常は推奨されません。

単純にGhostscript.NETライブラリを使用しないでください。これは十分にテストされたネイティブの Ghostscript ライブラリ ラッパーであり、必要なことを実行でき、x86 と x64 の両方の Ghostscript ライブラリと互換性があります。

PDF を画像にラスタライズする方法を示すサンプル コードは次のとおりです

「desired_x_dpi」と「desired_y_dpi」で異なる (低い) 値を試してみると、出力画像が小さくなります。

于 2014-04-24T07:27:10.203 に答える