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

2024-03-30

我的 extjs4application 仪表板中有几个图表。 我想使用这些图表的图像生成 pdf 报告 为此我使用 iTextSharp

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

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

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

我的图表将是图表对象

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

EDIT

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

但当我指定 .aspx 的 mapPath 时它不起作用

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

我所说的“不起作用”是指没有错误,但没有创建PNG!

my code:

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 文档

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保存 Extjs4 图表图像以在 pdf 报告中打印? 的相关文章

  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • iTextSharp。为什么单元格背景图像顺时针旋转90度?

    我希望使用单元格背景使用它的自然尺寸 如果它们不适合单元格 图像应该被裁剪 另一件事是 当我使用图案填充图像时 图像实际上旋转了 90 度 所以这个问题的主要问题是为什么图案图像在添加后会旋转我已经用谷歌搜索答案并阅读文档 但找不到任何解释
  • 使 html svg 对象也成为可点击的链接(在 iPhone 上)

    这个问题与使 html svg 对象也成为可点击的链接 https stackoverflow com q 11374059 4825796 但给出的答案似乎不适用于 iPhone ios 9 3 safari 和 chrome 浏览器 我
  • 如何在java中的itext pdf库中为段落添加边框?

    我在java中使用itext pdf库创建了一个段落 我必须为段落添加边框 而不是为整个文档添加边框 怎么做 请看一下段落边框 http itextpdf com sandbox events BorderForParagraph例子 它展
  • 绘制持续时间图表

    从我在写这篇文章之前所做的阅读中 我相当确定我需要创建甘特图 但我不知道这是否是正确的路线 需要将开始时间和结束时间的数据作为一个单位绘制在 Excel 图表上 Y 轴为日期 X 轴为一天中的小时 开始时间和结束时间的格式是 Excel 数
  • 想要使用飞碟生成风景pdf

    我有下面给出的 html 当我使用飞碟将其转换为 PDF 时 它不适合 A4 纵向尺寸 如何生成横向pdf文件 table border 1 style color black font size 12px tr td a href a t
  • 如何在AChartEngine中绘制两个不同缩放比例的Y轴

    我在 AChartEngine 中绘制具有不同缩放比例的两个 Y 轴 一个在右侧 一个在左侧 时遇到问题 我希望左侧从 0 缩放到 40 这是正确的 但右侧缩放不是所需的缩放 应该是 10 到 100 请帮助我 我的源代码看起来像这样 公共
  • 设计 ASP.NET 图表控件的样式

    使用 which 是一个子集 http blogs msdn com alexgor archive 2008 11 07 microsoft chart control vs dundas chart control aspx of th
  • 树的子节点/节点上的单击事件

    我真的对 ExtJs 树对象感到困惑 我的代码有问题 但我不知道是什么 考虑我有这个代码 var store Ext create Ext data TreeStore root expanded true children text de
  • 带有图像的 Svg 在 Safari 中不显示

    在我的网站中 我嵌入了一些 svgs 它们在 Chrome Firefox IE 9 和 Safari 中似乎都工作得很好 然而 一旦 svg 中包含图像 safari 就不会渲染该图像 基于之前的类似主题 我尝试了以下内容 SVG 元素在
  • 使用 iText 在横向模式下将 html 转换为 pdf

    我正在尝试使用 iText 将 html 转换为 pdf 这是运行良好的简单代码 ByteArrayOutputStream pdfStream new ByteArrayOutputStream HtmlConverter convert
  • FloorPlanner 应用程序的 SVG/Canvas 与 Flash

    我计划创建一个平面图应用程序 允许用户使用鼠标绘制 调整大小 移动和旋转对象 我只是想知道使用 Flash 或 Javascript 是否会更好 如果使用 Javascript 我应该使用 canvas 还是 SVG 该应用程序将允许拖动选
  • 如何使用Python从Excel复制图表并将其作为图表粘贴到powerpoint(而不是图像)中

    我有一个excel文件 它根据可用数据生成图表 图表名称是thisChart 我想复制thisChart从 excel 文件到 ppt 文件 现在我知道有两种方法可以做到这一点 即VBA和python 使用win32com client V
  • 添加鼠标事件到svg ,检测网格悬停

    我有一个有点复杂的问题 我正在尝试通过 svg 渲染网格 然后将事件侦听器添加到网格中 目前我正在通过渲染网格
  • SVG 内部跨度与文本不在同一行

    我在一个跨度内有一个 SVG 文件 同时包含文本 文本和 SVG 的高度相同 但是 SVG 与文本不在同一行 相关jsfiddle https jsfiddle net tcrnjd53 https jsfiddle net tcrnjd5
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 如何进行多个 d3 窗口大小调整事件

    我有三个svg一页上的元素 每个元素都由 D3 陪伴 每个都有自己的页面调整大小逻辑 由我写的简单模块 https github com TimeMagazine d3 base让他们做出反应 问题在于 只有最后一个调整大小事件被触发 因为
  • 获取SVG绘图的边界框

    我想提取 SVG 绘图的边界框 由于 Python 已经在系统上可用并且还用于执行其他任务 因此我不想使用 JavaScript 或任何其他语言 我的理解是是否可以计算单个元素的边界框 但我不知道如何计算 整个绘图的边界框只是所有元素的最小
  • SVG定位

    我正在使用 SVG 但在定位方面遇到了一些问题 我有一系列形状包含在g组标签 我希望像容器一样使用它 这样我就可以设置它的 x 位置 然后该组中的所有元素也会移动 但这似乎不可能 大多数人如何定位您希望串联移动的一组元素 有相对定位的概念吗
  • 突出显示 extjs4 折线图的一部分

    在 extjs 4 1 1a 中 下面的代码是折线图的工作示例 现在我需要在给定的最小和最大时间戳上突出显示该图表的一部分 xtype chart store ChartData height 100 width 100 legend po

随机推荐

  • git diff - 仅显示远程上的新内容

    我在 github 上有一个本地存储库和一个远程存储库 由于商业原因 它们不同步 我已经在我保留的本地上做了很多工作 现在我手动将远程的所有新内容添加到我的本地 没有分支机构 当我使用该命令时 git diff color master o
  • 向 JsonOutputFormatter 构造函数提供 ArrayPool 对象

    从 net RC2 升级到 RTM 后 我发现我需要向派生自 ArrayPool 的 JsonOutputFormatter 构造函数提供一个参数 我如何获得这个对象 我手动新建 JsonOutputFormatter 因为我需要配置 Re
  • Quartz API 和 Joda Time API 之间有什么关系吗?

    是否可以在 JodaTime 中创建一个日期 然后让 Quartz 使用 JodaTime 对象安排作业 我们可以给 Quartz API 一个Period jodaPeriod 以便在一天中的特定时间段内运行任务吗 这两个 API 是否相
  • C++ char 数组输入 - 解释

    我有一个练习 编写一个程序 接收一个句子 然后从每个单词中取出第一个字母并创建一个新单词 我的代码 int main char str new char 50 for int i 0 i lt 50 i str i NULL cin gt
  • 预提交钩子文件暂存以进行提交

    如果您在 Git 中有一个用于创建 或修改 文件的预提交挂钩 那么该文件是否需要暂存才能提交 例如 如果我有一个预提交挂钩来创建某些代码的缩小版本 我是否需要git add那个缩小版本可以包含在提交中吗 是的 您必须自己将文件添加到索引中
  • 是否可以通过 Pip 安装部分 Python 包?

    我有一个被许多项目使用的内部实用程序库 从实用程序库中提取的代码中的项目之间有相当多的重叠 但随着库的增长 任何单个项目获得的不会使用的额外内容也会增加 如果该库仅包含 python 那么这不会成为问题 但该库也捆绑在二进制文件中 Exam
  • 一行中两个等号?

    有人可以解释一下这是做什么的以及它如何是合法的 C 代码吗 我在这段代码中找到了这一行 http code google com p compression code downloads list http code google com
  • 如何在一台服务器上部署nodejs api和vuejs应用程序

    我开发了 Node Rest api 和 vuejs Web 应用程序 我正在尝试将这两个项目部署到一台运行 ubuntu 的 aws 服务器上 两个应用程序都有不同的端口 我尝试为 api 配置 api example com 为 vue
  • XML-RPC 方法可以在 Python 中按名称(作为字符串)调用吗?

    在 python 中 调用 XML RPC 方法涉及调用代理对象上的方法 from xmlrpclib import ServerProxy print ServerProxy https example com rpc api hello
  • 隐藏的 YouTube 播放器失去了方法

    我正在使用 javascript 控制嵌入式 youtube chromeless 播放器 并且我想偶尔通过设置 display none 来隐藏它 然而 当我再次向播放器展示时 它失去了 YouTube 方法 例如
  • .NET MVC3 Razor (VB!) 扩展未在视图中导入?

    我的扩展未导入到我的 vbhtml 视图中 我似乎在某个地方遗漏了一些东西 有人可以帮忙吗 模块 vb Imports System Runtime CompilerServices Namespace Areas Admin Models
  • Arel、联接和 Rails 查询

    我最近被一个问题困扰了一段时间 并找到了 Arel 的方法 它看起来应该允许我在查询中执行 OR 操作 作为起点 我需要将现有的 Rails 3 查询转换为 Arel 这就是我遇到问题的地方 以下范围和查询按我的预期工作 它向我提供与特定用
  • 如果 std::map 被清除,是否确保内存被释放

    If a std vector vec被清除vec clear 分配的内存不得立即释放 这size向量的值将为零 但capacity将 可以不变 这是一种非常有益的行为 因为可以清除一个大向量并为其分配新值 而不需要昂贵的内存解除 分配 内
  • 从 CGRect 中减去 CGRect——其中最大的一块不包含另一个

    我怎样才能减一CGRect来自另一个 我想要结果R1 R2是 R1 中不与 R2 相交的最大子矩形 实施例1 R2 R1
  • 括号中的 Console.log 错误

    每次我尝试使用 console log 时都会遇到这种错误 错误 意外的控制台语句 无控制台 console log 名称 is a 年龄 岁数 工作 谁已婚 isMarried 36 错误 控制台 未定义 no undef console
  • 新的 Voided Purchasing API 的用例是什么

    谷歌刚刚推出无效购买 API https developers google com android publisher voided purchases Google Play 作废购买 API 允许您撤销对与用户已作废的购买相关的应用内
  • 如何将 Thymeleaf 显示的字符串大写到页面中?

    我正在开发一个使用 Thymeleaf 作为模板引擎的 Spring MVC 应用程序 并且我正在尝试将页面中显示的一些字符串大写 在我的页面上有这样的内容 li class com nav item a href class com na
  • 如何将本地库加载到本地android代码中? (安卓工作室)

    我有一个 C 语言库 名为mylib在文件夹中jniLibs your architecture mylib so 在 Java 中 要加载库 您只需在源代码中键入该代码 static System loadLibrary mylib 但是
  • Python 推导式中是否需要局部变量? [复制]

    这个问题在这里已经有答案了 在 Python 3 x 中 我正在调用一个函数rand foo 每次被调用时都会返回一些随机的东西 我希望将随机结果序列存储到列表中 我正在使用以下构造 r rand foo for i in range 10
  • 如何保存 Extjs4 图表图像以在 pdf 报告中打印?

    我的 extjs4application 仪表板中有几个图表 我想使用这些图表的图像生成 pdf 报告 为此我使用 iTextSharp 有没有办法从图表中获取图像 以便将它们包含在我的报告中 对我来说理想的是像这样与 itextsharp