我尝试使用以下示例中给出的代码(第一个函数)将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();
}
答案 0 :(得分:1)
我尝试用一个替换输入和输出的路径,没有任何空间,现在它可以工作了!这是我最终使用的代码:
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");
}
}
}
答案 1 :(得分:0)
尝试替换任何奇怪的字符(非字母数字和空格,保持文件路径“整洁”并位于共享/临时文件夹中,以授予对任何用户/进程的访问权限,并且应该可以正常工作