我正在尝试将XAML存储在位图文件中并将其打印为pdf文件。
我的视图显示如下控件/文本:
pdf显示如下创建的位图:
以下是有关如何将XAML转换为位图的代码:
MyWindow view = new MyWindow();
view.Title = "SOME TEXT";
//add the table
RenderTargetBitmap bmp = new RenderTargetBitmap((int)view.ActualWidth, (int)view.ActualHeight, 96, 96, PixelFormats.Pbgra32);
bmp.Render(view);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(bmp));
//System.Windows.Clipboard.SetImage(pngImage.Frames[0]); //Clipboard still shows the pngImage in high quality!
MemoryStream stream = new MemoryStream();
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(pngImage.Frames[0]);
encoder.Save(stream);
Bitmap myCreatedBitmap = new Bitmap(stream);
我正在使用System.Drawing.Printing
打印pdf文件。我正在像这样在EventHandler PrintPageEventHandler
中分配位图:
e.Graphics.DrawImage(this.bitmap, new Rectangle(e.MarginBounds.X, e.MarginBounds.Y, e.MarginBounds.Width, e.MarginBounds.Height), new Rectangle(posX, posY, e.MarginBounds.Width, e.MarginBounds.Height), GraphicsUnit.Pixel);
图像模糊的原因是什么,或者如何将XAML转换为具有高分辨率的位图并将其存储为pdf?
答案 0 :(得分:0)
要将高质量的XAML转换为PDF,请尝试使用Syncfusion .NET PDF library将XAML转换为XPS并将XPS转换为PDF。
请参考以下KB,将XAML转换为PDF https://www.syncfusion.com/kb/8083/how-to-convert-xaml-to-pdf-in-wpf-platform