从highcharts exports-server控制导出的JPG的分辨率(dpi)

时间:2013-05-29 00:47:19

标签: highcharts

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

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

1 个答案:

答案 0 :(得分:2)

最后一次使用Batik和PhantomJS之前的版本。最后一个版本仅使用PhantomJS。这就是为什么你不再在pom.xml中找到任何Batik引用的原因。

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

控制导出图像的大小

自Highcharts 3.0和Highstock 1.3以来,导出图像的大小是根据一些规则计算的:

  1. 如果设置了export.sourceWidth和exports.sourceHeight选项,则它们采用预先设置。这为屏幕图表和导出图表提供了单独尺寸的便捷方式。
  2. 如果没有,并且设置了chart.width和chart.height选项,那么这些选项将用于导出的图表。
  3. 如果尚未找到尺寸,并且包含div具有明确的像素宽度或高度,则使用该宽度或高度。百分比和其他非像素宽度不会生效。这可以防止Highcharts 2中常见的陷阱,其中具有典型100%宽度的图表在导出时看起来不成比例。
  4. 如果仍未找到尺寸,则默认为600 x 400像素。
  5. 在将图表宽度渲染为上述大小以及与之相关的所有文本大小之后,实际图像分辨率由exports.scale确定,默认为2.实际上,这意味着600x400图表将返回1200x800的图像默认情况下为像素这背后的基本原理非常简单 - 如果我们使用1的标度并将sourceWidth设置为1200而sourceHeight设置为800,则所有文本都会变得太小。如果我们不进行扩展,分辨率对于打印来说太小了。
  6. 另请阅读here了解有关导出服务器的更多信息