使用iTextSharp可以将PDF页面转换为图像吗?

11

大家好,我一直在使用itextSharp在dot.net中处理所有pdf相关项目。 我遇到了一个需求,需要将PDF页面转换为图像。 我找不到任何样例。我发现另一个工具ghostscript可以做到这一点,但问题是我正在使用共享主机,并且我认为ghostscript不会在服务器上运行,因为在我的本地机器上,我不得不手动将ghost script dlls复制到system32文件夹中,而这在共享主机中是不可能的。


无法使用iTextSharp将PDF页面转换为图像。您需要使用一些JavaScript库...您可以尝试使用Phantomjs..我已经使用过它,它非常适合此目的。 - TheKingPinMirza
问题不清楚,建议重新表述成一个可回答的问题。如果你只需要GhostScript DLLs,你可以将它们复制到“bin”文件夹中,这样你就可以在托管系统上访问它们的功能。 - Adrian Wragg
请参考以下链接:https://dev59.com/XGAg5IYBdhLWcg3wLIXS - JDK
嗨,我认为Phantomjs不能与asp.net一起使用,对吗?我需要一些可以与asp.net c#一起使用的东西。 - Max
@Max 你尝试将它们复制到“bin”文件夹中,与你的应用程序自己的DLL一起吗? - Adrian Wragg
显示剩余8条评论
1个回答

15

好的,我搜索了一下,发现有一个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();

    }

这仍然需要在服务器上安装Ghostscript。 - Russell Horwood
截至Ghostscript.NET 1.2.1版本,此功能在Linux上似乎无法正常工作。 - sunside

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接