čeština v pdfsharp   zodpovězená otázka

VB.NET

Dobrý den, mám prosbu už nějakou dobu se tu pokouším přijít na to, proč mi blbne čeština při generování PDF pres pdfsharp věrím že to bude jen nejaká blbost nic méně koukám do toho už asi 4 dny a nevím kudy kam. Výsledkem je toto : e š c r ž ý á í é u ú d t n

String jsem zkoušel i převádět na UTF-8

Public Shared Function encode(ByVal str As String) As String
        Dim utf8Encoding As New System.Text.UTF8Encoding(True)
        Dim encodedString() As Byte

        encodedString = utf8Encoding.GetBytes(str)

        Return utf8Encoding.GetString(encodedString)
    End Function

Mohl bych někoho poprosit o radu ?

pro vytvoreni souboru pouzivam

' Create a new PDF document
    Dim document As PdfDocument = New PdfDocument

    ' Create an empty page
    Dim page As PdfPage = document.AddPage
    ' Get an XGraphics object for drawing
    Dim gfx As XGraphics = XGraphics.FromPdfPage(Page)

    Dim text_obyc As XFont = New XFont("Arial", 8, XFontStyle.Regular)

    gfx.DrawString(encode("ě š č ř ž ý á í é ů ú ď ť ň"), text_obyc, XBrushes.Black, New XRect(10, 10, page.Width.Point, page.Height.Point), XStringFormats.TopLeft)

        ' Save the document...
        Dim filename As String = Server.MapPath("~/files/documents/tisk/" + "jidelni_listek_" + 
        document.Save(filename)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mám pocit, že jsem kdysi něco podobného taky řešil a pomohla změna fontu, což je trochu divné, že by Arial neobsahoval tyto znaky...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za odpověď bohužel zkoušel jsem všechny win fornty ktere maji CZ. Jiné moc používat nechci jelikož toto je webové aplikace. Navíc je mi divné že "š,ž" funguje ...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já řešil stejný problém v iTextSharp.dll, viz komentáře článku http://www.dotnetportal.cz/blogy/15/Null...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý večer,

ať koukám jak koukám ... tak to převádění nevidím ... jestli koukám dobře, převádíte UTF8 na UTF8, nemělo by to být třeba z Win1250 na UTF8 a pod ?.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji všem již sem nato přišel řešení jako vždy jednoduché, neuvědomil jsem si že kódování mohu provést přímo v Xfont

Dim options As XPdfFontOptions = New XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always)
Dim text_obyc As XFont = New XFont("DejaVu", 8, XFontStyle.Regular, options)
nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback