我打电话来创建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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)