Problem mit Array

  • VB.NET

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

    Problem mit Array

    Hallo Forum's Mitglieder.
    Ich Habe folgendes Problem und zwar wollte ich mit PDFSharp ein Pdf erstellen, dies klappt auch soweit
    nun wollte ich die Seitenanzahl ermittel und habe folgendes im I-net gefunden

    HTML-Quellcode

    1. http://www.autohaustools.de/blog/article/pdfsharp-seitenzahlen-in-fuszeile

    und habe es auch so übernommen aber vb sagt mir immer "Für Arrays die mit Expliziten Grenzen deklariert sind,ist keine explizite Intitalisierung zulässig."

    Was Mache ich Falsch ???

    Hier mein Code:

    VB.NET-Quellcode

    1. ' Neues PDF-Document erstellen
    2. Dim document As New PdfDocument
    3. document.Info.Title = "Erstellt mit PDFsharp"
    4. document.Info.Author = "Mühle und Recycling V1.0.0.0"
    5. document.Info.CreationDate = Now
    6. document.Info.Subject = "Lieferschein Nr.: " & LieferscheinNummer
    7. ' Erstelle XGraphics Object zum Zeichnen
    8. Dim currentPage As Integer = 1
    9. ' Leere Seite erstellen
    10. Dim page As PdfPage = document.AddPage
    11. ' X-Graphics Array
    12. Dim gfx(currentPage) = XGraphics.FromPdfPage(page)
    13. 'gfx(currentPage) = currentPage
    14. ' Schrift festlegen
    15. Dim f As XFont = New XFont("Arial", 6, XFontStyle.Regular)
    16. Dim f1 As XFont = New XFont("Arial", 8, XFontStyle.Underline)
    17. Dim f2 As XFont = New XFont("Arial", 12, XFontStyle.Bold)
    18. Dim f2_1 As XFont = New XFont("Arial", 12, XFontStyle.Regular)
    19. Dim f3 As XFont = New XFont("Arial", 18, XFontStyle.Bold)
    20. Dim f4 As XFont = New XFont("Arial", 20, XFontStyle.Bold)
    21. Dim fBC As XFont = New XFont("Free 3 of 9 Extended", 25, XFontStyle.Regular)
    22. 'Briefkopf erstellen
    23. gfx(currentPage).DrawString("LIEFERSCHEIN Nr.: " & LieferscheinNummer, f3, XBrushes.Black, _
    24. New XRect(20, 290, page.Width.Millimeter, page.Height.Millimeter), XStringFormats.TopLeft)
    25. gfx(currentPage).DrawLine(XPens.Black, 20, 315, 550, 315)
    26. gfx(currentPage).DrawString("Seite: ", f2, XBrushes.Black, _
    27. New XRect(360, 200, page.Width.Millimeter, page.Height.Millimeter), XStringFormats.TopLeft)
    28. gfx(currentPage).DrawString("Bearbeiter:", f2, XBrushes.Black, _
    29. New XRect(360, 215, page.Width.Millimeter, page.Height.Millimeter), XStringFormats.TopLeft)
    30. gfx(currentPage).DrawString("Versandart:", f2, XBrushes.Black, _
    31. New XRect(360, 230, page.Width.Millimeter, page.Height.Millimeter), XStringFormats.TopLeft)
    32. 'Seitenzahl Ermittel
    33. For p As Integer = 1 To currentPage
    34. gfx(p).DrawString(p & " von " & currentPage, f2_1, XBrushes.Black, _
    35. New XRect(445, 200, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)
    36. Next
    37. 'Falls neue Seite Gewünscht wird
    38. page = document.AddPage
    39. currentPage += 1
    40. ReDim Preserve gfx(currentPage)


    Ich Sage schonmal Danke im Vorraus und hoffe ihr könnt mir Helfen

    Raucher1991 schrieb:

    Was Mache ich Falsch ?
    Hör auf zu rauchen und poste mal die konkrete Fehlerzeile.
    Ich empfehle Dir, gfx als List(Of xxx) zu deklarieren, da kommst Du nicht in Verlegenheit, solch OberSchlimmSchrott-Befehl "ReDim Preserve" verwenden zu müssen.
    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!

    Raucher1991 schrieb:

    Weil des gfx Brauch ich ja für PDFSharp
    Was genau will PDFSharp von Dir haben?
    Wie sieht die Deklaration aus?
    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!

    VB.NET-Quellcode

    1. Dim gfx(currentpage)
    2. gfx(currentpage) = XGraphics.FromPdfPage(page)


    Man darf Arrays die eine bestimmte Grenze haben, bei ihrer Deklaration keinen Wert zuweisen, dass muss man zur Laufzeit machen.
    Aber eine List(of xy) wäre hier besser, weil man Arrays dann benutzen sollte, wenn man genau weiß wieviele Elemente sich darin befinden.
    Wenn die Elemente darin variable sein sollen, ist eine List(of xy) besser.

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

    Also ich will ein PDF erzeugen und möchte die Anzahl der Seiten ermitteln.

    Und ich bin eben übers Internet auf die oben genannte Seite gestoßen. Leider Funktioniert der Code nicht. Problem ist mit List Of habe ich noch nie gearbeitet bzw davon was gehört

    Konkret gesagt möchte ich eben auf jeder PDF Seite "Seite x von x" stehen haben.
    Da brauchst Du weder Array noch List.
    Entweder Du weißt, was Du alles drucken willst und wie die Seiten befüllt werden, da solltest Du darüber die Anzahl der Seiten ermitteln können
    Oder
    Dann musst Du einen "Trockendruck" machen, wo der Druck in den Rundordner (oder P-Ablage) umgeleitet wird, da zählst Du mit und weißt dann beim "richtigen" Druck den richtigen Wert.
    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!