Unicode iTextSharp

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Frostbeule.

    Unicode iTextSharp

    Hallo Zusammen,

    ich versuche aktuell japanische Schriftzeichen als PDF anzeigen zu lassen.

    VB.NET-Quellcode

    1. Dim PdfTableHeader As New PdfPTable(4)
    2. PdfTableHeader.TotalWidth = 524.0F
    3. PdfTableHeader.LockedWidth = True
    4. PdfPCellHeader.Colspan = 4
    5. PdfPCellHeader.HorizontalAlignment = 1 ' //0=Left, 1=Centre, 2=Right
    6. PdfTableHeader.AddCell(Textbox1.Text)


    Sobald die Textbox lateinische Schriftzeichen hat, funktioniert alles.



    Habe auch versucht ein eigenes Font anzulegen, leider ohne erfolg.

    VB.NET-Quellcode

    1. Dim arial As BaseFont = BaseFont.CreateFont("c:\windows\fonts\ARIAL.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
    2. Dim Font = New Font(arial, 8)

    Bitte um Hilfe. Danke :)

    Viele Grüße
    Frostbeule

    Frostbeule schrieb:

    leider ohne erfolg
    Wie äußert sich das?
    Kannst Du mal so viel Code posten, dass wir das vollständig nachstellen können?
    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!
    Sobald in den Textboxen japanische Schriftzeichen drin stehen. Bleibt die Tabelle in der PDF leer. Mit deutschen Schriftzeichen funktioniert alles.

    VB.NET-Quellcode

    1. ' PDF Erzeugung
    2. Dim Paragraph As New Paragraph ' neuer Parapraph
    3. Dim PdfFile As New Document(PageSize.A4, 36, 36, 36, 55) ' PDF größe
    4. PdfFile.AddTitle(lblAushärteparameter.Text) ' Titel der PDF
    5. Dim PDFPfad As String = Me.SaveFilePDF.FileName 'Pfad für PDF i = Me.OpenFileCSV.FileName
    6. Dim Write As PdfWriter = PdfWriter.GetInstance(PdfFile, New FileStream(PDFPfad, FileMode.Create))
    7. 'HEADER
    8. 'Footer
    9. Dim ev As New itsEvents
    10. Write.PageEvent = ev
    11. 'Footer
    12. PdfFile.Open()
    13. ' Deklaration font type
    14. Dim pTitle As New Font(iTextSharp.text.Font.FontFamily.UNDEFINED, 22, iTextSharp.text.Font.BOLD, BaseColor.BLACK)
    15. Dim pTable As New Font(iTextSharp.text.Font.FontFamily.TIMES_ROMAN, 8, iTextSharp.text.Font.NORMAL, BaseColor.BLACK)
    16. ' Titel in PDF einfügen
    17. Paragraph = New Paragraph(New Chunk(lblAushärteparameter.Text, pTitle))
    18. Paragraph.Alignment = Element.ALIGN_CENTER
    19. Paragraph.SpacingAfter = 5.0F
    20. '#################################
    21. ' Bild / Login PDF einfügen
    22. Dim img As Image = Image.GetInstance(ApplicatonPath & "\pdf_logo.png")
    23. Dim scalePercent = (((PdfFile.PageSize.Width / img.Width) * 100) / 4)
    24. img.ScalePercent(scalePercent)
    25. PdfFile.Add(img)
    26. PdfFile.Add(New Paragraph(""))
    27. PdfFile.Add(New Chunk(lblProtokoll.Text & " " & tbProtokoll.Text, pTitle))
    28. PdfFile.Add(New Paragraph(" "))
    29. '#################################
    30. 'Tabelle Kopfsätze
    31. Dim PdfTableHeader As New PdfPTable(4)
    32. PdfTableHeader.TotalWidth = 524.0F
    33. PdfTableHeader.LockedWidth = True
    34. 'Für alle Zellen: PdfTableHeader.DefaultCell.BackgroundColor = New BaseColor(Color.Cyan)
    35. Dim PdfPCellHeader As PdfPCell = New PdfPCell(New Phrase("Aushärteparameter", pTitle))
    36. PdfPCellHeader.Colspan = 4
    37. PdfPCellHeader.HorizontalAlignment = 1 ' //0=Left, 1=Centre, 2=Right
    38. headerZellenEinfügenGrau(lblAuftraggeber.Text, PdfTableHeader)
    39. PdfTableHeader.AddCell(cmbAuftraggeber.Text)
    40. headerZellenEinfügenGrau(lblIngBüro.Text, PdfTableHeader)
    41. PdfTableHeader.AddCell(cmbIngBüro.Text)
    42. '####neue Zeile
    43. headerZellenEinfügenGrau(lblStraßeAG.Text, PdfTableHeader)
    44. PdfTableHeader.AddCell(tbStraßeAG.Text)
    45. headerZellenEinfügenGrau(lblStraßeING.Text, PdfTableHeader)
    46. PdfTableHeader.AddCell(tbStraßeING.Text)
    47. '####neue Zeile
    48. headerZellenEinfügenGrau(lblOrt.Text, PdfTableHeader)
    49. PdfTableHeader.AddCell(txtOrt.Text)
    50. headerZellenEinfügenGrau(lblOrt2.Text, PdfTableHeader)
    51. PdfTableHeader.AddCell(txtOrt2.Text)
    52. PdfTableHeader.AddCell("")
    53. PdfFile.Add(PdfTableHeader)
    54. PdfFile.Close()
    @Frostbeule Probierma, diesen Text in das Notepad++ zu kopieren und dann den Text mit einem System-PDF-Drucker zu drucken.
    Wenn das auch nicht geht, fehlen ggf. Zeichensätze.
    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!
    @Frostbeule Mit welchem Code kommt denn Dein Text zum PDF-Drucker?
    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!
    @RodFromGermany wie im dritten Post zu sehen ist das der Code. Der Text wird aus der Textbox gezogen.

    VB.NET-Quellcode

    1. lblIngBüro.Text = "受注者"
    2. lblStraßeAG.Text = "受注者住所(都道府県群市区)"


    Mithilfe von iTextSharp erzeuge ich eine PDF

    VB.NET-Quellcode

    1. Imports iTextSharp.text
    2. Imports iTextSharp.text.pdf


    oder verstehe ich deine Frage falsch? ?( :(

    Frostbeule schrieb:

    oder verstehe ich deine Frage falsch?
    Ja.
    Irgendwo mus Dein Text der DLL-Instanz zugewiesen werden.
    Beim "normalen" Drucken sieht das so aus:

    da wird neben dem Text der Font vorgegeben.
    Wie sieht der entsprechende Code bei Dir 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!
    @Eierlein @RodFromGermany

    Danke für eure Hilfe.
    Habs nun gefunden. Dank @Eierlein habe ich den ARIALUNI-Font installiert.

    VB.NET-Quellcode

    1. Dim arial As BaseFont = BaseFont.CreateFont("c:\windows\fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
    2. Dim Font = New Font(arial, 8)


    Und nun funktioniert der Font :thumbsup: Die PDF zeigt die gewünschten Schriftzeichen an

    VB.NET-Quellcode

    1. PdfTableHeader.AddCell(New PdfPCell(New Phrase(cmbAuftraggeber.Text, Font_Uni)))


    Vielen Dank für die schnelle Hilfe.

    Viele Grüße Frostbeule