使用 C# 和 Ghostscript 将 pdf 转换为图像

Converting pdf to image using c# and Ghostscript

我有一个编程任务。我需要使用免费库或命令行程序使用 C# 将 pdf 转换为图像。

到目前为止,使用 Ghostscript 进行转换是可行的,只是它在图像中心创建了一个 8 号红色框:

pdf的内容只有纯白的,为什么我的图片上有8个红框?我做错了什么?

代码如下:

string outputImagesPath = null;


string inputPDFFile = null;
inputPDFFile = @"C:\Users\user\cover.pdf";
outputImagesPath = @"C:\user\Desktop.jpg";
string ghostScriptPath = @"C:\Users\gswin32.exe";

String ars = "-o" + outputImagesPath+ "%03d.png -sDEVICE=jpeg -dJPEGQ=100 " + inputPDFFile;
Process proc = new Process();
proc.StartInfo.FileName = ghostScriptPath;
proc.StartInfo.Arguments = ars;
proc.StartInfo.CreateNoWindow = true;
//proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
string strOutput = proc.StandardOutput.ReadToEnd();
Console.WriteLine(strOutput);
proc.WaitForExit();

这里是pdf的link,谢谢https://drive.google.com/open?id=0B0auNx4EZsCUUkFHWGR4MjV5NzA

这很可能是由于缺少字体或 CIDFont 引起的,矩形是 .notdef 字形,在找不到字形时使用。当然,不看原始PDF文件是无法判断的。

但是,如果您查看 Ghostscript 后台通道(不,我不能告诉您如何使用 Ghostscript.NET 执行此操作,因为它不是 Artifex 产品),您可能会看到有关缺少字形的警告。

我可以进一步查看,但前提是您提供 PDF 文件。了解您使用的 Ghostscript 版本也很有帮助。

看看这里,使用另一个与 .net core 一起工作的 nuget 包,无需安装到服务器或您的本地计算机。best answer saving pdf pages as images