我需要创建不同的报告,这些报告将打印在不同的页面尺寸(A4,A5等)上。
过去我们使用Winforms(e.graphics.DrawString等)来构建页面。 我们现在迁移到WPF并使用XpsDocument。我是WPF的新手,我在不同的印刷和绘图课上有点迷失。
如何创建A4页面,并在x = 100mm,y = 150mm处绘制一个字符串? 如果有可能我想使用DrawingContext类,因为它似乎类似于winforms GDI +绘制页面内容的风格
DrawingVisual visual = new DrawingVisual();
using (DrawingContext dc = visual.RenderOpen())
{
dc.DrawText(new FormattedText("TestString 01", CultureInfo.CurrentCulture
, FlowDirection.LeftToRight, new Typeface("Arial"), 10, Brushes.Black)
, new Point(100, 150));
}
我正在使用以下代码创建XPS文档,但我不知道如何设置页面大小,并在XPS文档上使用DrawingContext ...
using (var doc = new XpsDocument(fileName, FileAccess.Write))
{
var writer = XpsDocument.CreateXpsDocumentWriter(doc);
writer.Write(GetRandomA4Page());
}