PDF erstellen

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Vatter.

    PDF erstellen

    Moin.

    Ich möchte eine PDF mit Kopf und Fußzeile erstellen bzw. oben soll ein Bild (Kopfzeile) stehen darunter der Text und unter dem Text nochmal ein Bild (Fußzeile).
    Wie könnte man so etwas bewerkstelligen?

    mfg
    GOOGLE ist mein Meister :)
    Guck ma auf Sourceforge. Da gibts ne .NET - Bibliothek zum erstellen von PDF - Dateien.
    edit: Guckstu hier sourceforge.net/projects/pdfsharp/
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Klasse Danke euch!
    So also das erstellen der PDF ist nun kein Problem mehr :)

    Jedoch habe ich Probleme mit der Anordnung der Kopf und Fußzeile!

    Hier mal mein Bisheriger Code:

    VB.NET-Quellcode

    1. Dim document As PdfDocument = New PdfDocument
    2. document.Info.Title = "Created with PDFsharp"
    3. Dim page As PdfPage = document.AddPage
    4. Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
    5. Dim font As XFont = New XFont("Verdana", 14, XFontStyle.Bold)
    6. gfx.DrawImage(XImage.FromFile("C:\Users\Home\Desktop\Bilder\Unbenannt-1_03.gif"), 150, 0)
    7. gfx.DrawString("Hello, World! was geht??", font, XBrushes.Black, New XRect(100, 200, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)
    8. gfx.DrawImage(XImage.FromFile("C:\Users\Home\Desktop\Bilder\Unbenannt-1_03.gif"), 150, 800)
    9. Dim filename As String = "HelloWorld.pdf"
    10. document.Save(filename)
    11. Process.Start(filename)


    Allerdings bekomme ich das nicht richtig hin mit der Position der 2 Bilder Oben am Anfang einer PDF und an der Letzten Seite der PDF und mitten drinn der Text.

    Hoffe da kann mir jemand weiterhelfen.

    MFG
    GOOGLE ist mein Meister :)
    Wasn das jetzt für ein sinnloser Post?

    Siehst du nicht das ich schon etwas habe aber das noch nicht richtig hin bekommen hab?
    Für was soll ich andere Klassenbibliotheken nutzen oder mich dumm suchen wenn das e schon zu 80% funktioniert?

    Wenn du mir weiterhelfen kannst und willst dann tue dass bitte ansonsten spare dir den ganzen Google Kram und schau in meine Signatur.

    MFG
    GOOGLE ist mein Meister :)

    Bady schrieb:

    Allerdings bekomme ich das nicht richtig hin mit der Position der 2 Bilder Oben am Anfang einer PDF und an der Letzten Seite der PDF und mitten drinn der Text.
    Eine äußerst präzise Problembeschreibung :thumbsup: , muß ich sagen.
    Zeichne Bilder und Schrift einfach an die richtige Position.

    Ne im Ernst: Mach ma nen Screenshot vom Ist und nen gemaltes Bild vom Soll. Sonst gibs hier nur Bahnhof und Kofferklauen.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Hm ok zur veranschaulichung mal hier die erstellte pdf im Anhang.(HelloWorld)
    Die 2te pdf ist die soll pdf (infobrief)

    und wenn du dir jetzt diesen Code dazu ansiehst:

    VB.NET-Quellcode

    1. Sub Main2()
    2. Dim document As PdfDocument = New PdfDocument
    3. document.Info.Title = "Created with PDFsharp"
    4. Dim page As PdfPage = document.AddPage
    5. Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
    6. Dim font As XFont = New XFont("Verdana", 14, XFontStyle.Bold)
    7. gfx.DrawImage(XImage.FromFile("C:\Users\Home\Desktop\Bilder\Unbenannt-1_03.gif"), 150, 0)
    8. gfx.DrawString("Hello, World! was geht??", font, XBrushes.Black, New XRect(100, 200, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)
    9. Application.DoEvents()
    10. gfx.DrawString("Hello45, World! was geht??222", font, XBrushes.Black, New XRect(100, 220, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)
    11. gfx.DrawImage(XImage.FromFile("C:\Users\Home\Desktop\Bilder\Unbenannt-1_03.gif"), 150, 800)
    12. Dim filename As String = "HelloWorld.pdf"
    13. document.Save(filename)
    14. Process.Start(filename)
    15. End Sub


    Wirst du sehen das ich bei gfx.DrawString immer die Postionen angeben muss sowie auch bei den beiden bildern am oberen teil der pdf soauch im unteren teil!

    Nun möchte ich das so haben das ich nur eine Textbox in meinem Programm habe wo ich meinen Text reinschreibe egal wie lange ( könnten auch 2 pdf seiten lang sein) und mir das bild oben und am ende der pdf automatisch rein macht. Also quasi wie eine Firmenvorlage wo oben ein header ist und untern ein Logo.

    Hoffe ich konnte das jetzt etwas besser veranschaulichen.

    MFG
    Dateien
    • HelloWorld.pdf

      (3,57 kB, 1.289 mal heruntergeladen, zuletzt: )
    • Infobrief.pdf

      (224,14 kB, 1.765 mal heruntergeladen, zuletzt: )
    GOOGLE ist mein Meister :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bady“ ()

    Also ich kenne PDF_Sharp nur vom Hörensagen, aber wenn du Text2 und Bild2 auf die 2. Seite zeichnen möchtest, mußt du dann nicht erstma eine 2. Seite hinzufügen (Dim page2 As PdfPage = document.AddPage) und denn ein raphics-Object auf diese Page setzen?

    Fiel Grütze

    Vatter
    Edit: Is ma so ausm bauch, wie gesagt ohne PDF_Sharp zu kennen...

    VB.NET-Quellcode

    1. Sub Main2()
    2. Dim document As PdfDocument = New PdfDocument
    3. document.Info.Title = "Created with PDFsharp"
    4. Dim page(2) As PdfPage
    5. page(0) = document.AddPage
    6. page(1) = document.AddPage
    7. 'Seite 1
    8. Dim gfx As XGraphics = XGraphics.FromPdfPage(page(0))
    9. Dim font As XFont = New XFont("Verdana", 14, XFontStyle.Bold)
    10. gfx.DrawImage(XImage.FromFile("C:\Users\Home\Desktop\Bilder\Unbenannt-1_03.gif"), 150, 0)
    11. gfx.DrawString("Hello, World! was geht??", font, XBrushes.Black, New XRect(100, 200, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)
    12. 'Seite 2
    13. gfx = XGraphics.FromPdfPage(page(1))
    14. gfx.DrawString("Hello45, World! was geht??222", font, XBrushes.Black, New XRect(100, 220, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)
    15. gfx.DrawImage(XImage.FromFile("C:\Users\Home\Desktop\Bilder\Unbenannt-1_03.gif"), 150, 800)
    16. Dim filename As String = "HelloWorld.pdf"
    17. document.Save(filename)
    18. Process.Start(filename)
    19. End Sub
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vatter“ ()

    Jab das ist richtig. Aber wie soll ich erkennen ob der eingegebene text 2 seiten braucht und wie soll ich erkennen bzw abfragen dass er das untere bild ans ende der seite schreibt?


    // deinen Code schon mal selbst getestet? xD
    MFG
    GOOGLE ist mein Meister :)
    Schau dir mal diese Seite von MSDN an und achte besonders auf MeasureString. des gibt dir die Abmessungen des Strings mit der entsprechenden Schriftart an.

    // deinen Code schon mal selbst getestet? xD
    Nee natürlich nicht. Ich sagte ja:
    Is ma so ausm bauch, wie gesagt ohne PDF_Sharp zu kennen...
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup: