XAML到高质量的位图

时间:2019-01-17 13:45:37

标签: c# xaml pdf bitmap

我正在尝试将XAML存储在位图文件中并将其打印为pdf文件。

我的视图显示如下控件/文本:

enter image description here

pdf显示如下创建的位图:

enter image description here

以下是有关如何将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?

1 个答案:

答案 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