Наш инструмент позволяет экспортировать в PNG, что очень хорошо работает. Теперь я хотел бы добавить экспорт в какой-нибудь векторный формат. Я попробовал XPS, но результаты меня совсем не устраивают.
Взгляните на сравнение http://www.jakubmaly.cz/xps-vs-png.png . Изображение слева получено из экспорта XPS, изображение справа из экспорта PNG, изображение XPS заметно размывается при открытии в XPS Viewer и увеличено на 100%.
Есть ли какие-то настройки, которые мне не хватает, или почему?
Спасибо, Якуб.
Образец вывода xps можно найти здесь: http://www.jakubmaly.cz/files/a.xps . Это код, который выполняет экспорт в XPS:
if (!boundingRectangle.HasValue)
{
boundingRectangle = new Rect(0, 0, frameworkElement.ActualWidth, frameworkElement.ActualHeight);
}
// Save current canvas transorm
Transform transform = frameworkElement.LayoutTransform;
// Temporarily reset the layout transform before saving
frameworkElement.LayoutTransform = null;
// Get the size of the canvas
Size size = new Size(boundingRectangle.Value.Width, boundingRectangle.Value.Height);
// Measure and arrange elements
frameworkElement.Measure(size);
frameworkElement.Arrange(new Rect(size));
// Open new package
System.IO.Packaging.Package package = System.IO.Packaging.Package.Open(filename, FileMode.Create);
// Create new xps document based on the package opened
XpsDocument doc = new XpsDocument(package);
// Create an instance of XpsDocumentWriter for the document
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc);
// Write the canvas (as Visual) to the document
writer.Write(frameworkElement);
// Close document
doc.Close();
// Close package
package.Close();
// Restore previously saved layout
frameworkElement.LayoutTransform = transform;