Reputation: 21
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
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
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