将pdf转换为png时发生致命错误

本文关键字:致命错误 png pdf 转换 | 更新日期: 2023-09-27 18:08:14

我正在尝试将pdf转换为PNG,使用以下示例中给出的代码(第一个函数):https://ghostscriptnet.codeplex.com/SourceControl/latest#Ghostscript.NET/Ghostscript.NET.Samples/Samples/DeviceUsageSample.cs

然而,我在启动时得到这个错误:"当调用'gsapi_init_with_args'时发生错误:-100"…这并不意味着什么。

为什么这个基本的例子不起作用?我在这里下载了最新的Ghostscript.NET.dll: https://ghostscriptnet.codeplex.com/并将其添加到项目的参考文献中。我的操作系统是Windows 7 x32位,我以管理员身份运行VisualStudio。

下面是我的代码:
private void button6_Click(object sender, EventArgs e)
{
    GhostscriptPngDevice devPNG = new GhostscriptPngDevice(GhostscriptPngDeviceType.Png256);
    devPNG.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
    devPNG.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
    devPNG.ResolutionXY = new GhostscriptImageDeviceResolution(96, 96);
    devPNG.InputFiles.Add(@"D:'Public'FOS.pdf");
    devPNG.OutputPath = @"D:'Public'FOS.png";
    devPNG.Process();
}

将pdf转换为png时发生致命错误

我试着用一个代替输入和输出的路径,没有任何空间,现在它工作了!下面是我最终使用的代码:

using Ghostscript.NET.Rasterizer;
private void button6_Click(object sender, EventArgs e)
{
    int desired_x_dpi = 96;
    int desired_y_dpi = 96;
    string inputPdfPath = @"D:'Public'temp'rasterizer'FOS.pdf";
    string outputPath = @"D:'Public'temp'rasterizer'output'";
    using (var rasterizer = new GhostscriptRasterizer())
    {
        rasterizer.Open(inputPdfPath);
        for (var pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
        {
            var pageFilePath = Path.Combine(outputPath, string.Format("Page-{0}.png", pageNumber));
            var img = rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
            img.Save(pageFilePath + "ImageFormat.Png");
        }
    }
}

尝试替换任何奇怪的字符(非字母数字和空格),保持文件路径"干净";并在共享/临时文件夹授予访问任何用户/进程,应该工作得很好