Можно ли напечатать в pdf элемент управления wpf no как изображение? - PullRequest
0 голосов
/ 05 сентября 2018

Чтобы напечатать документ в 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>

Когда он печатается, я могу выделить текст.

Так что, возможно, мне следует открыть еще один вопрос, спрашивающий, как напечатать визуал с фоновым изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...