5

Ghostscript は PDF を画像形式に変換できることがわかりました。

PDF to Image Converterを試してみましたが、はっきりと理解できませんでした。

インストールしましたが、Web アプリケーションにアクセスgs905w64.exeしようとすると、このエラーが発生します。add reference

A reference to gsdll32.dll could not be added. No type libraries were found in the component.

4

5 に答える 5

10

プロジェクトに DLL 参照を追加する必要はありません。最初に gs910w32.exe アプリケーション ファイルをダウンロードしてから、ローカル コンピューターにインストールします。インストールされた .exe ファイルの場所を取得します。例:-

「C:\Program Files (x86)\gs\gs8.64\bin\gswin32.exe」

C# アプリケーションで次のように使用します。

 
  private void PdfToJpg(string inputPDFFile, string outputImagesPath)
        {
            string ghostScriptPath = @"C:\Program Files (x86)\gs\gs8.64\bin\gswin32.exe";
            String ars = "-dNOPAUSE -sDEVICE=jpeg -r102.4 -o" + outputImagesPath + "%d.jpg -sPAPERSIZE=a4 " + inputPDFFile;
            Process proc = new Process();
            proc.StartInfo.FileName = ghostScriptPath;
            proc.StartInfo.Arguments = ars;
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            proc.Start();
            proc.WaitForExit();
        }
 

入力 PDF ファイル名にスペースが含まれている場合は、引数を次のように変更する必要があります。

 
String ars = "-dNOPAUSE -sDEVICE=jpeg -r102.4 -o" + outputImagesPath + "%d.jpg -sPAPERSIZE=a4 " +"\"" + inputPDFFile + "\"";
 

-r フラグを使用して、引数で出力イメージの縦横比を指定できます。「-r300」を使用すると、画像の幅は 3000 ピクセルになり、それに応じて高さが変わります。上記の引数から、1024 から 768 サイズの jpg 画像が得られます。

于 2014-01-09T12:32:35.643 に答える
9

C#を使用してGhostScriptコマンドラインを実行するか、Platform Invoke(pInvoke)呼び出しを使用してGhostScriptdllを直接呼び出すことができます。

GhostScriptは主にファイルベースであるため、入力はディスク上のファイルへのパスであり、出力はディスク上のファイルの作成です。dllまたはexeのいずれかを呼び出すために使用されるパラメーターは基本的に同じであるため、dllを直接呼び出すことに大きな利点はありませんが、より優れたコードになります。

ghostscript dllを呼び出すために使用できるC#ラッパーがあります。メール(プロファイルのアドレス)を送信すると、送信されます。

HTH

アップデート:

コードリポジトリはhttps://bitbucket.org/brightertools/ghostscriptに移動しました

于 2012-07-17T08:46:31.440 に答える
6

gsdll32.dllファイルはマネージド .NET ライブラリではありません。プロジェクトで参照することはできません。プロジェクトに「コンテンツ」として含め(メニュー:既存のアイテムを追加)、VSがそれを出力ディレクトリにコピーできるようにする必要があります。それまでの間、Ghostscript API のドキュメントと、Ghostscript 関数の参照方法に関する PInvoke.net のこの記事を読む必要があります。

Ghostscript はすべてアンマネージ コードであり、ライブラリを使用した後は自分でクリーンアップを行う必要があることに注意してください。

編集:ロバートが言ったことも重要です。もちろん、正しいバージョンの Ghostscript ライブラリを使用する必要があります。

于 2012-07-17T07:49:01.590 に答える
3

プロジェクトへの参照としてライブラリを追加しようとするのはなぜですか? gsdll32.dllDot-Net ライブラリではなく、ネイティブ dll です。

Visual C# Express 2010 を使用してサンプル プロジェクトをビルドすると、exe ファイルが生成されます。実行すると、にアクセスしようとしますgsdll32.dll。問題は、64 ビット システムでは 64 ビットの実行可能ファイルが生成されますが、gsdll32.dll32 ビット用にコンパイルされることです。

正しい解決策は、ソース コードを変更し、発生するすべての場所で置き換えるgsdll32.dllことgsdll64.dllです。より簡単な解決策は、Ghostscript の 64 ビット バージョンを使用し、gsdll64.dllを と同じディレクトリにコピーしてConvertPDF.exe、名前を に変更することgsdll32.dllです。これは間違いなく機能します-PDFをテストしてTIFFに変換しただけです。

于 2012-07-17T07:31:21.490 に答える
0

ライブラリhttp://www.nuget.org/packages/GhostScriptSharp/を参照するには、以下のコマンドを実行する必要があり ます

VS2012 --> ツール --> ライブラリ パッケージ マネージャー --> パッケージ マネージャー コンソール

于 2014-04-01T07:06:32.250 に答える