用wkhtmltopdf创建pdf并渲染javascript

用wkhtmltopdf创建pdf并渲染javascript,第1张

概述我正在尝试创建一个我在模型窗口中的 JavaScript图表的PDF(我的图表是一个.aspx视图中的javascript和css的组合).在渲染的PDF文件中唯一的事情是窗口中的静态内容,实际的JavaScript图表并不存在. 我打电话来创建PDF如下: public byte[] WKHtmlToPdf(string url) { var fileName = " - 我正在尝试创建一个我在模型窗口中的 JavaScript图表的pdf(我的图表是一个.aspx视图中的JavaScript和CSS的组合).在渲染的pdf文件中唯一的事情是窗口中的静态内容,实际的JavaScript图表并不存在.

我打电话来创建pdf如下:

public byte[] WKHTMLTopdf(string url)    {        var filename = " - ";        var wkHTMLDir = "C:\Temp\wkHTML";        var wkHTML = "C:\Temp\wkHTML\wkHTMLtopdf.exe";        var p = new Process();        p.StartInfo.CreateNowindow = true;        p.StartInfo.RedirectStandardOutput = true;        p.StartInfo.RedirectStandardError = true;        p.StartInfo.RedirectStandardinput = true;        p.StartInfo.UseShellExecute = false;        p.StartInfo.filename = wkHTML;        p.StartInfo.WorkingDirectory = wkHTMLDir;        string switches = "";        switches += "--print-media-type ";        switches += "--margin-top 0mm --margin-bottom 0mm --margin-right 0mm --margin-left 0mm ";        switches += "--page-size Letter ";        p.StartInfo.Arguments = switches + " " + url + " " + filename;        p.Start();        //read output        byte[] buffer = new byte[32768];        byte[] file;        using (var ms = new MemoryStream())        {            while (true)            {                int read = p.StandardOutput.BaseStream.Read(buffer,buffer.Length);                if (read <= 0)                {                    break;                }                ms.Write(buffer,read);            }            file = ms.ToArray();        }        // wait or exit        p.WaitForExit(60000);        // read the exit code,close process        int returnCode = p.ExitCode;        p.Close();        return returnCode == 0 ? file : null;    }

关于我如何抓住JavaScript图表的任何想法?也许.Net版本更合适,或者我必须将生成的页面保存到文件中,并将其传递到工具中.

谢谢.

解决方法 在我们的项目中,我们做了一些模拟,成功的事情.我们现在使用wkHTMLtopdf 0.9.9与 Highcharts结合使用.通过jquery flot,我们在经过一点调整后也取得了成功.在我们的项目中,我们首先将视图呈现为一个字符串,并将其传递给使用它的stdin的wkHTML.然后我们抓住wkHTML的stdout并将其传回浏览器.

你的wkHTML设置似乎是正确的,除了我们使用stdin和stdout.不知道是否可以是一个问题.

如果您使用这些图表之一,我想我可以帮助您.你使用什么图表?

最后一个注意事项:当使用不同于端口80的端口号时,WkHTMLtopdf 0.10rc2似乎在从localhost加载外部资源(Js / CSS)时出现问题.

总结

以上是内存溢出为你收集整理的用wkhtmltopdf创建pdf并渲染javascript全部内容,希望文章能够帮你解决用wkhtmltopdf创建pdf并渲染javascript所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1144000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存