gpt4 book ai didi

extjs - 如何保存 Extjs4 图表图像以在 pdf 报告中打印?

转载 作者:行者123 更新时间:2023-12-04 14:41:25 25 4
gpt4 key购买 nike

我的 extjs4 应用程序仪表板中有几个图表..我想使用这些图表的图像生成 pdf 报告为此,我使用 iTextSharp

有没有办法从图表中获取图像以便将它们包含在我的报告中?

对我来说最理想的是像这样与 itextsharp 一起使用

MyImageStream = new MemoryStream();
myChart.SaveImage(MyImageStream);

我的图表将是图表对象

我在论坛上四处询问,他们告诉我我会在客户端生成并呈现我的图表(已经完成),然后我会得到 svg,将它发送到服务器,服务器会用它来生成 pdf...但我不知道如何使用 svg,也不知道如何将它发送到服务器

编辑

我正在尝试使用 wkhtmltoimage 将我的图表保存到图像中

但是当我为我的 .aspx 指定一个 mapPath 时它不起作用

但如果我指定网站 url 或本地主机路径(请参阅评论中的 htem),它会正常工作

不起作用我的意思是没有错误但没有创建 png!

我的代码:

var url = HttpContext.Current.Server.MapPath("~/chartImage.aspx");//dosnt work
//works : // "google.com"; //"localhost/chartImage.aspx";//
var fileName = " pie13.png ";
var wkhtmlDir = HttpContext.Current.Server.MapPath("~/wkhtmltopdf/pdf/");//"C:\\Program Files\\wkhtmltopdf\\";
var wkhtml = HttpContext.Current.Server.MapPath("~/wkhtmltopdf/wkhtmltoimage.exe");//"C:\\Program Files\\wkhtmltopdf\\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 10mm --margin-bottom 10mm --margin-right 10mm --margin-left 10mm ";
//switches += "--page-size Letter ";
p.StartInfo.Arguments = switches + " " + url + " " + fileName;
p.Start();

提前致谢

最佳答案

好的,这是阅读您上面的评论后的修订版。Ext JS 是一个客户端库,因此您需要在浏览器中运行它才能获取您的图表,而且这一点无法更改。如果你真的需要在服务器上获取这些图表,那么你必须或多或少地使用一些肮脏的技巧。其中之一是:

  1. 准备一个特殊的网页,其中只包含要包含在 PDF 中的图表
  2. 使用wkhtmltoimage程序将其转换为图像文件(在服务器上)
  3. 使用 iTextSharp 将该图像插入 PDF 文档

但在这种情况下,我宁愿重新考虑工具的选择或生成报告的方式。

关于extjs - 如何保存 Extjs4 图表图像以在 pdf 报告中打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8293938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com