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/