Преобразование HTML в PDF с помощью iTextSharp не поддерживает арабский язык - PullRequest
0 голосов
/ 28 ноября 2018

Я использую iTextSharp для преобразования содержимого HTML в файл PDF, но у меня возникает проблема, когда содержимое HTML на арабском языке выглядит следующим образом: enter image description here

, и это мой код:

Public Shared Function ExportToPDF(lang As String) As String
    Try
        Dim stringWrite As New System.IO.StringWriter
        Dim htmlWrite As New HtmlTextWriter(stringWrite)

        divExport.RenderControl(htmlWrite)

        Dim text As String
        text = String.Format("<html><head><style type='text/css'>{0}</style></head><body>{1}</body></html>", "body{font-color:red;}", stringWrite.ToString)
        Dim sr As New StringReader(text)
        Dim pdfDoc As New Document(PageSize.A4, 10.0F, 10.0F, 10.0F, 0.0F)
        Dim writer As PdfWriter = PdfWriter.GetInstance(pdfDoc, Response.OutputStream)
        pdfDoc.Open()

        XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr)
        pdfDoc.Close()
        Response.ContentType = "application/pdf"
        Response.AddHeader("content-disposition", "attachment;filename=FileName.pdf")
        Response.Cache.SetCacheability(HttpCacheability.NoCache)
        Response.Write(pdfDoc)
        Response.End()
    Catch ex As Exception

    End Try
    Return Nothing
End Function

divExport:

     <div id="divExport">
        <h1>Header</h1>
        <table>
         <tr>
        <td>Questions</td><td>الاسئلة</td>
        </tr>
        </table>
        <h2>Questions Answers</h2>
        <table>
        <tr>
        <td>Device Type</td><td>جهاز الكمبيوتر</td>
        </tr>
        </table>
        </div>

1 Ответ

0 голосов
/ 28 ноября 2018

XMLWorker не был предназначен для работы с арабским текстом, и, насколько мне известно (бывший сотрудник iText), он не может обрабатывать арабский текст.

Лучшим решением было бы использоватьpdfHTML (который входит в семейство продуктов iText 7 и преобразует HTML5 и CSS3 в PDF).

Для правильного отображения арабского языка (наряду с другими незападными сценариями) вам также потребуется pdfCalligraph, который был специально разработан для правильной визуализации незападных сценариев.

Эта ссылка предлагает дополнительные пояснения по pdfCalligraph

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...