0

我正在尝试使用以下示例(第一个函数)中给出的代码将 pdf 转换为 PNG:https ://ghostscriptnet.codeplex.com/SourceControl/latest#Ghostscript.NET/Ghostscript.NET.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();
}
4

2 回答 2

2

我尝试将输入和输出的路径替换为一个没有任何空间的路径,它现在可以工作了!这是我最终使用的代码:

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");
        }
    }
}
于 2015-08-18T07:52:38.860 回答
0

尝试替换任何奇怪的字符(非字母数字和空格,保持文件路径“干净”并在共享/临时文件夹中授予对任何用户/进程的访问权限,并且应该可以正常工作

于 2020-07-13T13:15:24.850 回答