Я пытаюсь сохранить XAML в растровом файле и распечатать его в файл PDF.
Мой вид показывает элементы управления / текст, как это:
![enter image description here](https://i.stack.imgur.com/D7J3Z.png)
PDF показывает созданное растровое изображение следующим образом:
![enter image description here](https://i.stack.imgur.com/P4wpf.png)
Вот код того, как я преобразовываю свой 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?