Dobrý den, Chtěl bych Vás požádat o radu. Používám knihovnu iText ke generování PDF souborů z html kódu. Kód je vytvořen v ovládacím prvku CKEditor a poslán do funkce. Vše funguje až na češtinu -> č,ř,ň atd. Neřešil už někdo Vás prosím tento problém? Děkuji Funkce na export:
public static void Export(string html, string fileName, string linkCss)
{
////reset response
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/pdf";
////define pdf filename
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
//Generate PDF
using (var document = new Document(PageSize.A4, 40, 40, 40, 40))
{
html = FormatImageLinks(html);
//define output control HTML
var memStream = new MemoryStream();
TextReader xmlString = new StringReader(html);
PdfWriter writer = PdfWriter.GetInstance(document, memStream);
//open doc
document.Open();
// register all fonts in current computer
FontFactory.RegisterDirectories();
// Set factories
var htmlContext = new HtmlPipelineContext(null);
htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());
// Set css
ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(false);
cssResolver.AddCssFile(HttpContext.Current.Server.MapPath(linkCss), true);
// Export
IPipeline pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext,
new PdfWriterPipeline(document, writer)));
var worker = new XMLWorker(pipeline, true);
var xmlParse = new XMLParser(true, worker, Encoding.UTF8);
xmlParse.Parse(xmlString);
xmlParse.Flush();
document.Close();
document.Dispose();
HttpContext.Current.Response.BinaryWrite(memStream.ToArray());
}
HttpContext.Current.Response.End();
HttpContext.Current.Response.Flush();
}
|