Migradoc/pdfsharp Seitenumbruch fetstellen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Migradoc/pdfsharp Seitenumbruch fetstellen

    Hey leute

    Ich erstelle mir hilfe von Migradoc ein Pdfdocument. In dem doc ist eine Tabelle mit personen bezogenen daten.
    Die Tabelle kann über mehrere seiten hinweggehen, ich würde gerne die erste zeile auf jeder seite ne "überschriftenzeile" (bei mir hrow) machen. wie wäre das möglich??
    ich habe mir überlegt zu überwachen wenn sich die seitenzahl erhöt habe allerdings keine passende eigenschaft gefunden, gibt es überhaupt so eine wenn ja wo finde ich diese?????

    VB.NET-Quellcode

    1. Dim Doc As Document = New Document
    2. Doc.DefaultPageSetup.Orientation = Orientation.Landscape
    3. Doc.Info.Title = "Zuschusliste test"
    4. Doc.Info.Subject = "Tabellen erstellen"
    5. Doc.Info.Author = "Ich"
    6. Doc.AddSection.AddParagraph("Tabele Overview")
    7. Dim tab As Tables.Table = Doc.LastSection.AddTable()
    8. tab.Borders.Width = 0.75
    9. Dim column As Tables.Column = tab.AddColumn(Unit.FromCentimeter(1.5))
    10. column.Format.Alignment = ParagraphAlignment.Center
    11. tab.AddColumn(Unit.FromCentimeter(4.5))
    12. tab.AddColumn(Unit.FromCentimeter(4.5))
    13. tab.AddColumn(Unit.FromCentimeter(5))
    14. tab.AddColumn(Unit.FromCentimeter(5))
    15. tab.AddColumn(Unit.FromCentimeter(3))
    16. tab.AddColumn(Unit.FromCentimeter(1))
    17. tab.AddColumn(Unit.FromCentimeter(1))
    18. tab.AddColumn(Unit.FromCentimeter(6))
    19. Dim hrow As Tables.Row = tab.AddRow()
    20. hrow.Cells(0).AddParagraph("Lfd. Nr.")
    21. hrow.Cells(1).AddParagraph("Vorname")
    22. hrow.Cells(2).AddParagraph("Nachname")
    23. hrow.Cells(3).AddParagraph("Straße")
    24. hrow.Cells(4).AddParagraph("Wohnort")
    25. hrow.Cells(5).AddParagraph("Gebdatum")
    26. hrow.Cells(6).AddParagraph("Veranst.Tage")
    27. hrow.Cells(7).AddParagraph("Übernachtungen")
    28. hrow.Cells(8).AddParagraph("Eigenhändige Unterschrift")
    29. tab.Rows.Add(hrow.Clone)
    30. For i = 0 To dt.Rows.Count - 1
    31. Dim row As Tables.Row = tab.AddRow()
    32. row.Cells(0).AddParagraph(i + 1 & ".")
    33. row.Cells(1).AddParagraph(dt.Rows(i).Item(1).ToString)
    34. row.Cells(2).AddParagraph(dt.Rows(i).Item(0).ToString)
    35. row.Cells(3).AddParagraph(dt.Rows(i).Item(3).ToString)
    36. row.Cells(4).AddParagraph(dt.Rows(i).Item(5).ToString & " " & dt.Rows(i).Item(4).ToString)
    37. row.Cells(5).AddParagraph(Format(CDate(dt.Rows(i).Item(2)), "dd.MM.yyyy"))
    38. row.Cells(6).AddParagraph(4)
    39. row.Cells(7).AddParagraph(2)
    40. Next
    41. MigraDoc.DocumentObjectModel.IO.DdlWriter.WriteToFile(Doc, "MigraDoc.mdddl")
    42. Dim renderer As New PdfDocumentRenderer(True, PdfSharp.Pdf.PdfFontEmbedding.Always)
    43. renderer.Document = Doc
    44. renderer.RenderDocument()
    45. ' Save the document...
    46. Dim filename As String = "Zuschusstabeltest.pdf"
    47. renderer.PdfDocument.Save(filename)
    48. ' ...and start a viewer.
    49. Process.Start(filename)


    lg
    papst94
    @Papst94: Warum arbeitest Du nicht mit einem PrintDocument()??????? (Findest Du nicht auch, dass die vielen Fragezeichen blöd aussehen?)
    Da kannst Du das Dokument nach Deinen Gutdünken gestalten und es gibt beliebig viele Beiträge hier zu diesem Thema.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    hii
    mmh. wie erstelle ich denn im printdocunment() einfach eine tabelle und befülle diese dann mit text. und wie formatiere ich dort den text. ausrichtung und so?
    ich habe mir migradoc/pdfsharp ausgesucht, da es dort relatif einfach ist text und tabellen in ein pdf document auszugeben.
    lg papst94
    PrintDocument.Print() funktioniertr wie das Paint-Event, Du kannst jeden Strich, jeden Buchstaben, jeden Text in Deiner Farbe an Deiner Position ausgeben, da musst Du mal ein wenig hier im Forum suchen und spielen.
    Iwo hab ich auch mal eine Tabellen-Druck-Funktionalität gefunden, frag mal Frau Google nach vb.net tabelle drucken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    hi
    das würde aber mein problem noch nicht lösen, da ich auch da iwann auf eine neu seite komme.
    Desweiteren ist das ja doch sehr aufwendig mit text umbruch in der zelle und so und die zeilen höhekann man ja auch nicht textangepass (einfach) verändern
    lg papst
    @Papst94: Hier mal ein paar Anhaltspunkte:
    - globaler Seitenzähler (Variable in der Klasse)
    - globaler Destinations-Index (da, wo die Seite beim Drucken anfängt)
    - lokaler Zeilenzähler (in der PrintPage()-Routine)
    - wissen, wo der nächste Output hin geht,
    - wissen, wie groß der nächste Output ist:
    - Dim sz = gr.MeasureString(myText, myFont) und Überladungen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Papst94 schrieb:

    printdocument
    Verwende mal die erweiterte Forums-Suchfunktion "Drucken" und ähnliche Wörter und gib meinen Namen als Autor ein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!