使用Ghostscript C#将HTML转换为PS

时间:2012-11-15 10:18:15

标签: c# visual-studio-2010 ghostscript

当我打印html文件时,我有问题,我已经尝试过doc,xls和txt文件,它们工作得很好,但是当我给出html文件时它会显示打印对话框,我必须按顺序选择ghostscript打印机工作。

我的代码是:

    [DllImport("Winspool.drv")]
    private static extern bool SetDefaultPrinter(string printerName);

    [ValidateInput(false)]
    public ActionResult CreatePdf(string file , string html)
    {
        SetDefaultPrinter("Ghostscript");
        Process process1 = new Process();
        if (html != null && html != "")
        { process1.StartInfo.FileName = "example.html"; }
        else
        { process1.StartInfo.FileName = file; }
        process1.EnableRaisingEvents = true;
        process1.StartInfo.Verb = "print";
        process1.StartInfo.Arguments = "\"Ghostscript PDF\"";
        process1.StartInfo.WorkingDirectory = Server.MapPath("~" + "/Export");
        process1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        process1.StartInfo.CreateNoWindow = true;
        process1.Start();
        try
        {
            process1.WaitForExit();
        }
        catch (InvalidOperationException) { }
        process1.Dispose();
    }

这应该改变我的output.ps文件,然后我用它来制作pdf文件,这完全有效,我只需要为html文件工作。

我遵循了这两个例子:

Example 1 Example 2

编辑: 我需要这个转换才能从html获取pdf文件,并发现wkhtmltopdf最适合我。

1 个答案:

答案 0 :(得分:0)

Ghostscript不会将HTML文档转换(布局和渲染)为PDF或PostScript,它只是一个用于处理PostScript和PDF文件的库,例如从头创建它们并将PostScript文件转换为栅格格式。

如果您想将HTML转换为PDF,最好的办法是使用像PrinceXML这样的商业图书馆,或者托管WebKit。

当您的代码有效时,它可以通过获取Internet Explorer(或任何您的shell默认Web浏览器)来进行渲染和打印。此技术无法在服务器端环境中可靠地工作。