web-dev-qa-db-ja.com

GhostscriptRasterizerオブジェクトはPageCount値として0を返します

_            txtStatus.Text = "";
            if (!File.Exists(txtOpenLocation.Text))
            {
                txtStatus.Text = "File Not Found";
                return;
            }

            txtStatus.Text = "File Found";



            const string DLL_32BITS = "gsdll32.dll";
            const string DLL_64BITS = "gsdll64.dll";

            //select DLL based on Arch
            string NomeGhostscriptDLL;
            if (Environment.Is64BitProcess)
            {
                NomeGhostscriptDLL = DLL_64BITS;
            }
            else
            {
                NomeGhostscriptDLL = DLL_32BITS;
            }




            GhostscriptVersionInfo gvi = new GhostscriptVersionInfo(NomeGhostscriptDLL);
            var rasterizer = new GhostscriptRasterizer();
            try
            {              
                rasterizer.Open(txtOpenLocation.Text, gvi, true);

                Console.WriteLine(rasterizer.PageCount); //This line always prints 0
            } catch(Exception er)
            {
                txtStatus.AppendText("\r\nUnable to Load the File: "+ er.ToString());
                return;
            }
_

私はそれをグーグルで調べましたが、rasterizer.Open()関数に関する解決策と役立つドキュメントがありませんでした。

ロードするpdfファイルに関係なく、Console.WriteLine(rasterizer.PageCount);は常に_0_を出力します。

txtStatusは、UIの複数行TextBoxです。 txtOpenLocationはUIの別のTextBoxであり、ユーザーは編集できません。その値はOpenFileDialogによって設定されます。

Visual Studio 2019 Community Editionを使用しています。

言及する価値があると思うもう1つの観察結果-私のマシン上のすべてのPDFファイルについて、Adobe Acrobat DCまたはFoxit ReaderのいずれかでPDFファイルを開こうとすると、最初にリーダーがクラッシュし、応答しなくなります'約10〜15秒後、PDFファイルを開きます。

OPとこの質問に対する主な回答と同様に、私も昨日この正確な問題に遭遇しました。

それを追加したいのですが、推奨バージョンのghostscript(9.26)が機能していませんでした。私は64ビットバージョンを使用する必要があると不満を述べました。

それを必要とする人のために、それはここにあります: https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/gs926aw64.exe

私はURLを推測する必要がありました。古いバージョンを見つけるのがいかに難しいかに驚いています。

1
Stuart Aitken