PDFSharp - Bilder genauer platzieren

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von HenryV.

    PDFSharp - Bilder genauer platzieren

    Moin!

    ich soll PDF-Dateien erstellen und hab mir PDFSharp dafür installiert.

    Ein Bild habe ich wie folgt eingebunden.

    VB.NET-Quellcode

    1. Public Overrides Sub Execute(ByVal parameter As Object)
    2. ' Create a new PDF document
    3. Dim document As PdfDocument = New PdfDocument
    4. document.Info.Title = "Created with PDFsharp"
    5. ' Create an empty page
    6. Dim page As PdfPage = document.AddPage
    7. ' Formatierung des Dokumentes
    8. page.Size = PageSize.A4
    9. page.Orientation = PageOrientation.Portrait
    10. ' Get an XGraphics object for drawing
    11. Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
    12. Dim Image As PdfSharp.Drawing.XImage = PdfSharp.Drawing.XImage.FromFile("\\local.ebhl.de\ebl-daten\Abteilung\EBL_SRL\ALLG\MapEdit\Logo_Luebeck_Entsorgungsbetriebe.jpg")
    13. Dim x As Double = (page.Width.Point - Image.PixelWidth * k_DPI / Image.HorizontalResolution) / 2
    14. gfx.DrawImage(Image, x, Milli2Dpi(50))
    15. ' Save the document...
    16. Dim filename As String = "c:\temp\Demo1.pdf"
    17. document.Save(filename)
    18. ' ...and start a viewer.
    19. Process.Start(filename)
    20. End Sub


    Um einen Abstand in Millimeter angeben zu können habe ich mir folgendes Funktion erstellt:

    VB.NET-Quellcode

    1. Private Function Milli2Dpi(Value As Integer) As Integer
    2. If Value < 0 Then Return 0
    3. Return Value * k_DPI / 10
    4. End Function


    Das Pdf wird korrekt erstellt.

    Nun wollte ich als Test einen weiteren Text einfügen mit einem Abstand von 40mm vom oberen Rand.

    Dazu gibt es diese Zeile zusätzlich:

    VB.NET-Quellcode

    1. gfx.DrawImage(Image, x, Milli2Dpi(40))


    Wenn ich den Abstand der beiden Bilder aber messe sind das ca. 2.5cm.

    Kann mir einer weiterhelfen, wo ich meinen Gedankenfehler habe?

    Gruß Jan

    jan99 schrieb:

    Wenn ich den Abstand der beiden Bilder aber messe sind das ca. 2.5cm
    Dann druckst du wohl mit 300 dpi.
    Dann sind es 24 mm.

    Meiner Berechnung nach taugt dein Korrekturfaktor von 72 für 180 dpi.
    Für 300 dpi brauchst du etwa 118.
    Wie kommst du auf diesen Faktor?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --