PDF mit iTextSharp erstellen und drucken lassen mit bestimmten Druckereinstellungen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von dotdev.

    PDF mit iTextSharp erstellen und drucken lassen mit bestimmten Druckereinstellungen

    Hallo,

    bin dabei mit iTextSharp ein eine PDF-Datei (Etikett) zu generieren und dann mit bestimmten Einstellungen für den Etikettendrucker drucken zu lassen.Die PDF wird erfolgreich generiert, jedoch weiß ich nicht wie ich es hinbekomme diese auch gleich drucken zu lassen mit bestimmten Druckeinstellungen (z.b. Länge). Die PDF wird nicht abgespeichert sondern nur für den Browser generiert.

    Ich stell mir das so vor:

    Button "Jetzt Drucken" wird geklickt -> PDF wird generiert -> an Drucker XY mit Druckeinstellungen Länge = 3cm gesenden -> Drucken

    Hier mein Code bist jetzt (habe einige Dinge rausgelassen wie z.B. Datenbank auslesen)

    VB.NET-Quellcode

    1. Imports iTextSharp.text
    2. Imports iTextSharp.text.pdf
    3. Imports System.IO
    4. Imports System.Web.UI.WebControls
    5. Imports System
    6. Imports System.Object
    7. Imports System.Data
    8. Imports System.Data.SqlClient
    9. Imports System.Drawing
    10. Imports System.Drawing.Printing
    11. Partial Class _Default
    12. Inherits System.Web.UI.Page
    13. Dim Verbindung As String
    14. Dim myRowData As DataRow
    15. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    16. Response.Buffer = True
    17. Response.Clear()
    18. Response.ClearContent()
    19. Response.ClearHeaders()
    20. Response.ContentType = "application/pdf"
    21. 'Die Größe des PDF-Dokuments setzt sich aus points zusammen. Dabei gilt 72 points = 1 inch = 2,54 cm
    22. Dim Document As New Document(New iTextSharp.text.Rectangle(176.0F, 69.0F), 0, 0, 0, 0)
    23. Dim Writer As PdfWriter
    24. Writer = PdfWriter.getInstance(Document, Response.OutputStream)
    25. 'Daten aus Datenbank holen, um sie in der PDF anzuzeigen
    26. 'ausgeblendet
    27. Try
    28. Document.Open()
    29. 'Erzeuge Tabelle
    30. Dim Tabelle1 As PdfPTable
    31. Tabelle1 = New PdfPTable(2)
    32. Dim Logo As PdfPCell
    33. 'Größe der Tabelle definieren
    34. Tabelle1.WidthPercentage = 100
    35. Tabelle1.DefaultCell.Border = 0
    36. Tabelle1.DefaultCell.FixedHeight = Document.PageSize.Height / 2
    37. 'Anordnung innerhalb der Zellen definieren
    38. Tabelle1.DefaultCell.VerticalAlignment = Element.ALIGN_MIDDLE
    39. Tabelle1.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER
    40. 'Deklarieren des Images
    41. Dim img As iTextSharp.text.Image = iTextSharp.text.Image.getInstance("C:\Documents ..\logo.jpg")
    42. img.scaleToFit(85.0F, 22.0F)
    43. 'Zelle oben links
    44. Logo = New PdfPCell(img)
    45. Logo.VerticalAlignment = Element.ALIGN_MIDDLE
    46. Logo.HorizontalAlignment = Element.ALIGN_CENTER
    47. Logo.Border = Tabelle1.DefaultCell.Border
    48. Tabelle1.addCell(Logo)
    49. 'Zelle oben rechts
    50. Dim phBarcode As Phrase
    51. Dim fntBarcode As iTextSharp.text.Font
    52. Dim bfBarcode As BaseFont
    53. bfBarcode = BaseFont.createFont("C:\..\IDAutomationHC39M.ttf", BaseFont.CP1252, True)
    54. fntBarcode = New iTextSharp.text.Font(bfBarcode, 10, iTextSharp.text.Font.NORMAL)
    55. phBarcode = New Phrase("1234", fntBarcode)
    56. Dim cellBarcode As New PdfPCell(phBarcode)
    57. cellBarcode.VerticalAlignment = Element.ALIGN_MIDDLE
    58. cellBarcode.HorizontalAlignment = Tabelle1.DefaultCell.HorizontalAlignment
    59. cellBarcode.FixedHeight = Tabelle1.DefaultCell.FixedHeight
    60. cellBarcode.Border = Tabelle1.DefaultCell.Border
    61. Tabelle1.addCell(cellBarcode)
    62. Tabelle1.DefaultCell.VerticalAlignment = Element.ALIGN_TOP
    63. Tabelle1.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER
    64. 'Zelle unten links
    65. Dim phSN1 As Phrase
    66. Dim phDate1 As Phrase
    67. Dim para3 As Paragraph = New Paragraph
    68. Dim fntBoldText1 As iTextSharp.text.Font = FontFactory.getFont("Arial", 12, iTextSharp.text.Font.BOLD)
    69. Dim fntSmallText1 As iTextSharp.text.Font = FontFactory.getFont("Arial", 10, iTextSharp.text.Font.NORMAL)
    70. phSN1 = New Phrase("HOST " + Constants.vbNewLine, fntBoldText1)
    71. phDate1 = New Phrase("Bezeichnung", fntSmallText1)
    72. para3.Add(phSN1)
    73. para3.Add(phDate1)
    74. Tabelle1.addCell(para3)
    75. 'Zelle unten rechts (Serial Nummer)
    76. Dim phSN As Phrase
    77. Dim phDate As Phrase
    78. Dim para4 As Paragraph = New Paragraph
    79. Dim fntSmallText As iTextSharp.text.Font = FontFactory.getFont("Arial", 8, iTextSharp.text.Font.NORMAL)
    80. phSN = New Phrase("S/N: " + "SerienNR" + Constants.vbNewLine, fntSmallText)
    81. phDate = New Phrase("Datum", fntSmallText)
    82. para4.Add(phSN)
    83. para4.Add(phDate)
    84. Tabelle1.addCell(para4)
    85. Document.Add(Tabelle1)
    86. Finally
    87. Document.Close()
    88. End Try
    89. End Sub
    90. End Class


    Hoffe ihr könnt mir helfen, hab einen Tag lang gegooglet und nichts gefunden wie es gehen könnte :(
    Mfg

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „biowarrior“ ()

    Habe jetzt folgendes gefunden:

    VB.NET-Quellcode

    1. Imports System.Drawing
    2. Imports System.Drawing.Printing
    3. Partial Class _Default
    4. Inherits System.Web.UI.Page
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. Dim pd As New Printing.PrintDocument
    7. 'sub zum drucken einhängen
    8. AddHandler pd.PrintPage, AddressOf PrintPage
    9. pd.Print()
    10. End Sub
    11. Public Sub PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
    12. e.Graphics.DrawString("mein testdruck", New Font("Arial", 20, FontStyle.Regular, GraphicsUnit.Pixel), Brushes.Black, New Point(10, 10))
    13. End Sub
    14. End Class


    Jetzt muss nur nioch anstatt "mein testdruck" die generierte PDF Datei gedruckt werden. Kann ich das dort iwie einfügen oder auf die PDF Datei verweisen?

    Zudem muss noch der drucker XY ausgewählt werden. Mit diesem Code wird nur mit demStandartdrucker gedruckt..



    Jemand ne idee?



    mfg