1

我已经阅读了 Highcharts.com 网站上关于他们更新的基于 PhantomJS 的导出服务器的最新帖子。我还克隆了他们的 github 存储库并成功编译了他们的网络服务。但是,此服务器生成的所有文件都标记为 96dpi,这对于我的目的来说是不够的。根据 Highcharts.com 网站上有些矛盾的信息(这里这里),他们正在使用 Batik 对 PNG 和 JPG 输出进行光栅化,这应该可以调整导出的光栅图像的 DPI 设置。但是,pom.xml 不包含任何蜡染参考,我在源代码中找不到任何东西,这表明除了 PhantomJS 之外的任何东西都被用于生成光栅再现。PhantomJS 导出可能能够调整 DPI,但我只能找到不直​​接调整 DPI 的比例和宽度选项,因此需要繁琐的后处理重新缩放(或元数据编辑)来相应地调整 DPI。

所以,我的问题的实质是:在使用 highcharts java exporting-server 时,如何调整 PNG 和 JPG 格式的 highcharts 图表的导出 DPI?

4

1 回答 1

2

上一个版本之前的版本同时使用了 Batik 和 PhantomJS。最后一个版本只使用 PhantomJS。这就是为什么您不再在 pom.xml 中找到任何蜡染参考资料的原因。

用于控制导出图像的 dpi。您应该使用 scale 参数。为了完整起见,这里是 Highcharts 如何确定导出图像的 dpi。

控制导出图像的大小

从 Highcharts 3.0 和 Highstock 1.3 开始,导出图像的大小是根据一些规则计算的:

  1. 如果设置了exporting.sourceWidth 和exporting.sourceHeight 选项,则它们优先。这提供了一种方便的方法,可以将屏幕图表和导出的图表大小分开。
  2. 如果没有,并且设置了 chart.width 和 chart.height 选项,这些选项将用于导出的图表。
  3. 如果尚未找到大小,并且包含的​​ div 具有明确的像素宽度或高度,则使用该宽度或高度。百分比和其他非像素宽度不会生效。这可以防止 Highcharts 2 中的常见缺陷,即具有典型 100% 宽度的图表在导出时会显得不成比例。
  4. 如果仍未找到大小,则默认为 600 x 400 像素。
  5. 将图表宽度渲染为上述大小以及与之相关的所有文本大小后,实际图像分辨率由默认为 2 的 exporting.scale 确定。实际上,这意味着 600x400 图表将默认返回 1200x800 像素的图像. 这背后的原理很简单——如果我们使用 1 的比例并将 sourceWidth 设置为 1200 并将 sourceHeight 设置为 800,那么所有文本都会变得太小。如果我们不按比例放大,分辨率将太小而无法打印。

另请阅读此处了解有关导出服务器的更多信息

于 2013-05-29T19:13:31.883 回答