MSChart渲染打印EMF错误

本文关键字:EMF 错误 打印 MSChart | 更新日期: 2023-09-27 18:11:35

使用微软的图表控件system . windows . forms . datavuvisual.charting。图表,我试图渲染一个图表到矢量图形。这里的最终目标是将图表呈现为足够高质量的图像,以便嵌入PDF并用于打印。

问题是Chart控件产生的emf质量很低,并且不代表控件在打印时的样子。在具有任何曲线的图表中,EMF在嵌入到PDF中时只是显示为无法识别的像素化混乱。

我的问题是,有人成功地在打印中使用微软的图表控件吗?在这一点上,我甚至不关心使用EMF,因为这个引擎看起来不会在不久的将来被修复。我曾尝试用高DPI渲染为PNG,但这会影响图表上各种组件的厚度(设置为像素大小),线形图中的系列线就是一个例子。

我不确定是否有我遗漏的设置,但如果有什么技巧可以让这些图表保持良好的形状,我将非常感兴趣。

MSChart渲染打印EMF错误

如果有人感兴趣的话,看起来我已经找到了答案。如果在图表中使用任何半透明的颜色,它将无法在输出的EMF文件中正确呈现。只要避免部分透明的颜色(Alpha值不是0或255),保存为EMF似乎总是可以的。

需要注意的一件事是,某些效果(似乎)需要透明度来实现,因此设置这些也会破坏产生的EMF。这种效果的一个例子是将饼图设置为凹形。呈现为EMF的饼状图没有问题,一旦设置为凹形,就会变得无法识别。

希望这篇文章能帮到一些人,省掉我们花了三天的时间。