Мне нужно создать pdf во время выполнения из html в веб-приложении, разработанном в VB.Net и MSSQL 2005, с использованием itextSharp.
HTML-код сохраняется в базе данных.который содержит гуджарати, хинди и английский язык.
Может кто-нибудь сказать мне, как установить шрифт для HTML и какие шрифты я должен использовать для этого дисплея Enlgish, Gujarati и Hindi Я пробовал Arial Unicode MS, но он не отображает хинди точно.
Заранее спасибо
вот код метода, который я использую для преобразования html-строки в pdf-файл, который пользователь может сохранить на локальном компьютере.
Private Sub ExporttoPDF(ByVal FullHtml As String, ByVal fileName As String)
Try
Response.Clear() ' Clear Response and set content type and disposition so that user get save file dialogue.
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.pdf", fileName))
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Dim sr As StringReader = New StringReader(FullHtml)
Dim pdfDoc As iTextSharp.text.Document = New iTextSharp.text.Document(PageSize.A4.Rotate, 10, 10, 10, 10)
Dim htmlparser As HTMLWorker = New HTMLWorker(pdfDoc)
PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
pdfDoc.Open()
Dim fontpath As String = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "\fonts\ARIALUNI.TTF"
' "ARIALUNI.TTF" file copied from fonts folder and placed in the folder
Dim bf As BaseFont = BaseFont.CreateFont(fontpath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
FontFactory.RegisterDirectory( System.Web.HttpContext.Current.Request.PhysicalApplicationPath , True)
FontFactory.Register(fontpath, "Arial Unicode MS")
FontFactory.RegisterFamily("Arial Unicode MS", "Arial Unicode MS", fontpath)
'parse html from String reader "sr"
htmlparser.Parse(sr)
pdfDoc.Close()
Response.Write(pdfDoc)
Response.End()
Catch ex As Exception
Throw ex
End Try
End Sub
Вот как я использую код
dim htmlstring as string = "<html><body encoding=""" + BaseFont.IDENTITY_H + """ style=""font-family:Arial Unicode MS;font-size:12;""> <h2> set Font in itextSharp for HTML to PDF </h2> <span> I (aneel/અનિલ/अनिल) am facing problem to create a pdf from html that contains enlish, ગુજરાતી, हिंदी and other unicode characters. </span> </body></html>"
ExporttoPDF(htmlstring ,"sample.pdf")
В результате для гуджарати он отображает અનલિ где, как и ожидалось, અનિલ
Где, как и для хинди, он отображает अनलि где и должен быть should.