binar ahmed
binar ahmed

Reputation: 21

How to display Unicode characters in iTextSharo by using C# on MVC

I want convert HTML to PDF by using iTextSharp, work success for English characters but when using Unicode characters PDF convert but dose not display Unicode characters

This answer not help me

Thanks for help :)

My Code

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");
    }

Upvotes: 1

Views: 393

Answers (1)

binar ahmed
binar ahmed

Reputation: 21

Alternative a Way

I try use Rotativa it's easy to use, and it follow the same architecture of MVC

PM > Install-Package Rotativa.MVC -Version 2.0.3

USE

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

Upvotes: 1

Related Questions