Как отобразить символы Юникода в iTextSharo с помощью C# на MVC - PullRequest
1 голос
/ 03 марта 2020

Я хочу преобразовать HTML в PDF с помощью iTextSharp , успех работы для Engli sh символов, но при использовании Unicode символов PDF конвертируются, но не отображаются символы Unicode

Этот ответ мне не поможет

Спасибо за помощь:)

Мой код

public ActionResult Export()
    {
        Byte[] bytes;
        using (var ms = new MemoryStream())
        {
            using (var doc = new Document())
            {
                using (var writer = PdfWriter.GetInstance(doc, ms))
                {
                    doc.Open();

                    var example_html = @"<p> سڵاو</p>";
                    var example_css = @".headline{font-size:200%}";

                    using (var htmlWorker = new iTextSharp.text.html.simpleparser.HTMLWorker(doc))
                    {
                        using (var sr = new StringReader(example_html))
                        {
                            htmlWorker.Parse(sr);
                        }
                    }


                    using (var srHtml = new StringReader(example_html))
                    {
                        iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, srHtml);
                    }

                    using (var msCss = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_css)))
                    {
                        using (var msHtml = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(example_html)))
                        {
                            iTextSharp.tool.xml.XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msHtml, msCss, System.Text.Encoding.UTF8);
                        }
                    }


                    doc.Close();
                }
            }

            bytes = ms.ToArray();
        }

        return File(bytes, "application/pdf", "test.pdf");
    }

1 Ответ

1 голос
/ 03 марта 2020

Альтернативный путь

Я пытаюсь использовать Rotativa , он прост в использовании и соответствует той же архитектуре MVC

PM> Install-Package Rotativa. MVC -Версия 2.0.3

ИСПОЛЬЗОВАНИЕ

try
{
    return new ActionAsPdf("Contact"); // this view or html for convert PDF
}
catch (Exception e)
{
    return RedirectToAction("GeneralError", "Error");
}
...