MSChart рендер для печати EMF ошибка - PullRequest
3 голосов
/ 17 октября 2011

Используя элемент управления диаграммами Microsoft System.Windows.Forms.DataVisualization.Charting.Chart, я пытаюсь отобразить диаграмму в векторной графике. Конечной целью здесь является визуализация диаграммы с изображением достаточно высокого качества, которое будет встроено в PDF и использовано для печати. ​​

Проблема заключается в том, что ЭДС, создаваемые элементом управления Chart, имеют низкое качество и не отражают то, как элемент управления выглядел во время печати. В диаграммах с любыми изогнутыми линиями EMF просто отображается как неузнаваемый пиксельный беспорядок при внедрении в PDF.

Мой вопрос: кто-нибудь успешно использовал средства управления диаграммами Microsoft в печати? На данный момент меня даже не беспокоит использование EMF, так как этот двигатель выглядит так, как будто он не будет исправлен в ближайшее время. Я пробовал рендеринг в PNG с высоким DPI, но это влияет на толщину различных компонентов на диаграмме (с заданным размером пикселя), в качестве примера можно привести линии рядов на линейном графике.

Я не уверен, есть ли какие-то настройки, которые мне не хватает, но если есть хитрость в том, чтобы вывести эти графики в хорошую форму, мне было бы очень интересно узнать об этом.

1 Ответ

2 голосов
/ 20 октября 2011

Если кому-то интересно, похоже, я нашел ответ.Если в диаграмме используется какой-либо полупрозрачный цвет, он не будет правильно отображаться в выходящем файле EMF.До тех пор, пока вы избегаете частично прозрачных цветов (Alpha, который не равен 0 или 255), сохранение в формате EMF кажется всегда удачным.

Одна вещь, на которую следует обратить внимание, заключается в том, что определенные эффекты (кажется) требуют прозрачности, и поэтому их установка также повредит получившуюся ЭДС.Одним из примеров такого рода эффекта является установка круговой диаграммы вогнутой.Круговая диаграмма, безошибочно отображаемая в EMF, станет неузнаваемой после ее вогнутости.

Надеюсь, это поможет кому-то сэкономить три дня, которые понадобились нам, чтобы решить это.

...