2012-09-20 37 views
1

我正在尝试生成包含由HighCharts生成的数据表和图表的PDF文档服务器端。我正在使用highchart-serverside-exportiText如何让Highcharts放大图像内容而不是添加更多细节?

我已经能够生成文档,但打印时图表图像有颗粒感。据我所知,iText在插入图像时默认使用72dpi。获得更高保真度图像的正确方法是从较大的图像开始,并使用缩放功能之一(例如scalePercent())缩小图像的大小。

我可以通过将更大的高度和宽度参数传递给Highcharts来轻松生成更大的图表图像。问题在于,当您增加图表的尺寸时,内容不会按比例放大(例如,标签的字体大小)。事实上,你可以在某些地方获得更多细节(例如更多的坐标轴)。这是一个问题,原因是当你通过iText应用缩放时,这些项目变得非常小,难以阅读。

我看了看Highcharts API,看不到一种方法让Highcharts放大内容而不是添加更多细节。我如何得到这个工作?

如果我使用的方法是完全错误的,更广泛的问题是如何获得打印分辨率服务器端Highcharts图表?我必须使用iText,但愿意尝试使用替代技术来完成图表渲染。

+0

什么是Highcharts出口图表的格式?有没有办法获得由矢量图像而不是光栅图像组成的输出?这将解决您的低分辨率问题。 –

+0

highchart-serverside-export仅输出jpeg/png/tiff。 Highcharts本身产生SVG输出,但是这个工具不能让我访问生成的SVG。 –

+0

我认为[该文档](http://docs.highcharts.com/#export-module)将帮助你。尝试设置exportin.scale和exportin.sourceWidth/height以获得适当的图像宽度。 –

回答

1

您可以使用exporting.width属性指定导出图像的宽度。

这不会增加div的大小或添加/删除细节或任何类型的细节,它只会根据指定的宽度缩放生成的svg,并保持高宽比。因此,还缩放的一切,包括文字等

exporting: {  
    width:2000 // or scale down to 100 
}  

Upscaling exported images/pdf | Highcharts & Highstock @ jsFiddle

+0

这看起来很有前途。 API文档没有真正说明这个设置的影响。我在jsfiddle中玩它,看起来像我想要的。当我重新开始工作时,我会正确地测试它。 –

+0

是的,即使我花费了时间(尽管在学习SVG的过程中)数小时,试图创建一个自定义实现,以扩展高图生成的SVG,同时试图解决您相当有趣的问题。最终偶然发现了这个:) @BurhanAli –

+0

不幸的是,这并没有奏效。 highcharts-server-export完全忽略了导出部分。我想它不会使用它。据我所知,导出模块纯粹是一个客户端的东西加上一个Web服务来渲染。有点合理,highcharts-server-export不使用它,因为它不是客户端,外部渲染是多余的。 –

相关问题