Чтобы напечатать документ в PDF, сначала создайте изображение из вида, и я добавлю это изображение на фиксированную страницу. Код следующий:
Size myPageSize = new Size(myView.Width, myView.Height);
FixedDocument myDocument = new FixedDocument();
myDocument.DocumentPaginator.PageSize = miTamañoPagina;
myView.Measure(myPageSize);
myView.Arrange(new Rect(myPageSize));
myView.UpdateLayout();
System.Windows.Media.Imaging.RenderTargetBitmap bitmap = new System.Windows.Media.Imaging
.RenderTargetBitmap(794, 1122, 96, 96, System.Windows.Media.PixelFormats.Pbgra32);
bitmap.Render(myView);
System.Windows.Controls.Image myImage = new System.Windows.Controls.Image();
myImage.Source = bitmap;
FixedPage miPage = new FixedPage();
miPage.Width = myDocument.DocumentPaginator.PageSize.Width;
miPage.Height = myDocument.DocumentPaginator.PageSize.Height;
miPage.Children.Add(myImage);
PageContent myContent = new PageContent();
((IAddChild)myContent).AddChild(miPage);
myDocument.Pages.Add(myContent);
System.Windows.Controls.PrintDialog myDialog = new System.Windows.Controls.PrintDialog();
if (myDialog.ShowDialog() == true)
{
myDialog.PrintDocument(myDocument.DocumentPaginator, string.Empty);
}
Когда я создаю PDF, это похоже на изображение, и я не могу выделить текст, поэтому я хотел бы знать, есть ли способ напечатать представление без преобразования его в изображение.
На самом деле я использую .net 4.7.2 и Windows 10. Я знаю, что это отличное поведение по отношению к grpahics между Windows 7 и Windows 8.1 и Windows 10.
Спасибо.
РЕДАКТИРОВАТЬ: я заметил, что я могу использовать PrintVisual для печати представления, проблема в том, что мне нужно распечатать фон тоже, поэтому, если я добавлю этот код в мой axml, он не будет печататься, но если я удалю это код, который он печатает.
<UserControl.Background>
<ImageBrush AlignmentX="Center" AlignmentY="Center" Stretch="Uniform" Opacity="0.25" ImageSource="{Binding Source={x:Static vg:VariablesGlobales.Logo}}">
<ImageBrush.RelativeTransform>
<ScaleTransform ScaleX="0.75" ScaleY="0.75" CenterX=".5" CenterY="0.5" />
</ImageBrush.RelativeTransform>
</ImageBrush>
</UserControl.Background>
Когда он печатается, я могу выделить текст.
Так что, возможно, мне следует открыть еще один вопрос, спрашивающий, как напечатать визуал с фоновым изображением.