Unicode symbols in iTextSharp

前端 未结 2 1585
我寻月下人不归
我寻月下人不归 2020-12-21 07:37

I\'m trying to use a Unicode symbol in my PDF file with iTextSharp.

Dim base As BaseFont = BaseFont.CreateFont(\"C:\\\\WINDOWS\\\\Fonts\\\\WINGDING.TTF\", Ba         


        
相关标签:
2条回答
  • 2020-12-21 07:46

    The code appears to be a Visual Basic port of a C# project, since the string that holds the path to the font file has escaped backslashes in it -meaning "C:\WINDOWS\FONTS\WINGDING.TTF".

    This is an error in VB, which is probably trying to find a file located at "C:\\WINDOWS\\FONTS\\WINGDING.TTF".

    Chris' code, which apparently works, also points in that direction; since the escaped backslashes are one of its few differences.

    0 讨论(0)
  • 2020-12-21 07:53

    I just did the following and it worked exactly as it should. The Wingdings font appears in between the two words as a square box with a bottom-right drop shadow. The only thing is that I can't actually get the Wingdings font to actually embed itself and I believe that its an iTextSharp implicit rule because its assumed to be everywhere. I tried with WINGDNG2.TTF and that embedded correctly.

    Are you maybe not adding the Phrase correctly? Or are you opening this on a machine without Wingdings maybe?

        ''//Create a new document
        Dim Doc As New iTextSharp.text.Document(PageSize.LETTER, 20, 20, 20, 20)
        ''//Store the document on the desktop
        Dim writer = PdfWriter.GetInstance(Doc, New FileStream(Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "Output.pdf"), FileMode.Create, FileAccess.Write, FileShare.Read))
    
        ''//Open the PDF for writing
        Doc.Open()
    
        ''//Insert a page
        Doc.NewPage()
    
        ''//Add a regular text block using the default font
        Dim Phrase = New Phrase("Hello")
        Doc.Add(Phrase)
    
    
        ''//Create our base font
        Dim base As BaseFont = BaseFont.CreateFont("C:\Windows\Fonts\wingding.ttf", BaseFont.CP1252, BaseFont.EMBEDDED)
        ''//Create our usable font
        Dim wd As Font = New Font(base, 12, iTextSharp.text.Font.NORMAL, BaseColor.BLACK)
    
        ''//Add a text block using Wingdings
        Phrase = New Phrase("q", wd)
        Doc.Add(Phrase)
    
        ''//Add a trailing text block using the default font again
        Phrase = New Phrase("Bye")
        Doc.Add(Phrase)
    
        ''//Close the PDF
        Doc.Close()
    
    0 讨论(0)
提交回复
热议问题