PDFsharp - Водяной знак внизу страницы ландшафта - PullRequest
0 голосов
/ 16 января 2020

Я использую PDFsharp, чтобы попытаться добавить какой-либо текст внизу альбомной PDF-страницы, но он всегда смещается по вертикали, чем больше я делаю текст, тем ближе к нижней части страницы он становится, но я хочу использовать размер 20 шрифт. Если я использую al oop для определения максимально возможного размера, водяной знак идеально расположен внизу страницы. Я пробовал много разных способов, но не могу понять, что я делаю неправильно ..

   For Each Page As PdfPage In PDF.Pages
            Dim Graphics As XGraphics = XGraphics.FromPdfPage(Page, XGraphicsPdfPageOptions.Append)
            Dim FontSize As Integer = 20
            Dim Font As New XFont("Arial", FontSize, XFontStyle.Bold)
            Dim WaterMarkSize As XSize = Graphics.MeasureString(Watermark, Font)
            Dim Brush As New XSolidBrush(XColor.FromArgb(255, 255, 0, 0))

            If Page.Orientation = PdfSharp.PageOrientation.Portrait Then
                Graphics.DrawString(Watermark, Font, Brush, New XRect(0, Page.Height, Page.Width, 0), XStringFormats.BottomCenter)
            Else
                Page.Orientation = PageOrientation.Portrait
                Graphics.TranslateTransform(Page.Width.Value / 2, Page.Height.Value / 2)
                Graphics.RotateTransform(90)
                Graphics.TranslateTransform(-Page.Width.Value / 2, -Page.Height.Value / 2)

                Dim Format As New XStringFormat()
                Format.Alignment = XStringAlignment.Near
                Format.LineAlignment = XLineAlignment.Near
                Graphics.DrawString(Watermark, Font, Brush, New XPoint((Page.Width.Value - WaterMarkSize.Width) / 2, Page.Width.Value), Format)
            End If
    Next

Результат ..... enter image description here

Любой идеи?

1 Ответ

0 голосов
/ 16 января 2020

Координата Y в вашем DrawString вызове должна основываться на page.Height, а не page.Width.

. Вы должны использовать другой LineAlignment, если используете page.Width без настройки для высоты шрифта.

...