大家好,我一直在使用itextSharp在dot.net中处理所有pdf相关项目。 我遇到了一个需求,需要将PDF页面转换为图像。 我找不到任何样例。我发现另一个工具ghostscript可以做到这一点,但问题是我正在使用共享主机,并且我认为ghostscript不会在服务器上运行,因为在我的本地机器上,我不得不手动将ghost script dlls复制到system32文件夹中,而这在共享主机中是不可能的。
大家好,我一直在使用itextSharp在dot.net中处理所有pdf相关项目。 我遇到了一个需求,需要将PDF页面转换为图像。 我找不到任何样例。我发现另一个工具ghostscript可以做到这一点,但问题是我正在使用共享主机,并且我认为ghostscript不会在服务器上运行,因为在我的本地机器上,我不得不手动将ghost script dlls复制到system32文件夹中,而这在共享主机中是不可能的。
好的,我搜索了一下,发现有一个Ghost Script的NuGet包,所以我的问题通过打开程序包管理控制台并将ghost script添加到新项目来解决(因为旧项目有各种对win32 ghostscript dlls的引用)。命令是“PM> Install-Package Ghostscript.NET”。 因此,对于我的问题的答案是: 1. > itextSharp无法直接将PDF页面转换为图像。 2.> "Ghostscript.NET 1.2.0"可以很容易地实现这一点。以下是一个代码示例。
public void LoadImage(string InputPDFFile,int PageNumber)
{
string outImageName = Path.GetFileNameWithoutExtension(InputPDFFile);
outImageName = outImageName+"_"+PageNumber.ToString() + "_.png";
GhostscriptPngDevice dev = new GhostscriptPngDevice(GhostscriptPngDeviceType.Png256);
dev.GraphicsAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
dev.TextAlphaBits = GhostscriptImageDeviceAlphaBits.V_4;
dev.ResolutionXY = new GhostscriptImageDeviceResolution(290, 290);
dev.InputFiles.Add(InputPDFFile);
dev.Pdf.FirstPage = PageNumber;
dev.Pdf.LastPage = PageNumber;
dev.CustomSwitches.Add("-dDOINTERPOLATE");
dev.OutputPath = Server.MapPath(@"~/tempImages/" + outImageName);
dev.Process();
}