MSChart渲染用于打印EMF错误

时间:2011-10-17 19:48:18

标签: c# charts rendering mschart

使用Microsoft的图表控件System.Windows.Forms.DataVisualization.Charting.Chart,我试图将图表渲染为矢量图形。这里的最终目标是将图表渲染为足够高质量的图像,以嵌入PDF并用于打印。

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

我的问题是,有没有人成功使用过Microsoft的图表控件?此时,我甚至不关心使用EMF,因为该引擎看起来在不久的将来不会被修复。我尝试使用高DPI渲染到PNG,但这会影响图表上各种组件的厚度(设置为像素大小),线图中的系列线作为一个示例。

我不确定是否存在我缺少的设置,但如果有一个技巧可以让这些图表保持良好状态,我会非常有兴趣听到它。

1 个答案:

答案 0 :(得分:2)

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

需要注意的是,某些效果(似乎)需要实现透明度,因此设置这些效果也会破坏最终的EMF。这种效果的一个例子是将饼图设置为凹面。一旦设置为凹面,将无法识别呈现给EMF的饼图将变得无法识别。

希望这可以帮助有人节省我们花了三天时间来解决这个问题。