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社区版。

我还值得一提的另一个观察结果是-当我尝试使用Adobe Acrobat DC或Foxit Reader打开任何pdf文件时,对于我机器上的每个pdf文件,首先,阅读器崩溃,大约10到15秒后“无响应”,然后它会打开pdf文件。

最佳答案

昨天我遇到了同样的问题,我从此处https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/gs926aw32.exe下载了9.26版,并且可以运行!

我认为这是ghostscript 9.27发布的错误。

关于c# - GhostscriptRasterizer对象返回0作为PageCount值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56205425/

10-13 06:20