gpt4 book ai didi

c# - 使用 iTextSharp 将 HTML 转换为 PDF 不支持阿拉伯语

转载 作者:太空宇宙 更新时间:2023-11-03 20:52:51 25 4
gpt4 key购买 nike

我正在使用 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

div导出:

     <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>

最佳答案

XMLWorker 并非设计用于处理阿拉伯文本,据我所知(前 iText 员工)它无法处理阿拉伯文本。

更好的解决方案是使用 pdfHTML(它是 iText 7 产品系列的一部分,并将 HTML5 和 CSS3 转换为 PDF)。

为了正确呈现阿拉伯语(以及其他非西方文字),您还需要 pdfCalligraph,它是专门为正确呈现非西方文字而设计的。

This linkpdfCalligraph

上提供了更多解释

关于c# - 使用 iTextSharp 将 HTML 转换为 PDF 不支持阿拉伯语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53519009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com