2015-11-17 3 views
2

На данный момент я использую версию 5.5.3, и она работает без проблем, но я пытаюсь обновить ее до последней, и у меня есть проблема с польскими символами (они просто отсутствуют). я сделать преобразование из RTF в HTML и из HTML в PDF, как это:itextsharp с xmlworker 5.5.3 vs 5.5.7 Отсутствующие латинские символы на самом новом

private ElementList htmlToElementList(string htmlText) 
    { 
    ICSSResolver cssResolver = XMLWorkerHelper.GetInstance().GetDefaultCssResolver(true); 

     // HTML 
     HtmlPipelineContext htmlContext = new HtmlPipelineContext(null); 
     htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory()); 
     htmlContext.AutoBookmark(false); 
     // Pipelines 
     ElementList elements = new ElementList(); 
     ElementHandlerPipeline end = new ElementHandlerPipeline(elements, null); 
     HtmlPipeline html = new HtmlPipeline(htmlContext, end); 
     CssResolverPipeline css = new CssResolverPipeline(cssResolver, html); 
     // XML Worker 
     XMLWorker worker = new XMLWorker(css, true); 
     XMLParser p = new XMLParser(worker); 

     p.Parse(new StringReader(htmlText)); 

     return elements; 
    } 

Он работает, как и должно быть на 5.5.3. Я стараюсь, чтобы исследовать, и я нашел одно различие между ними (5.5.3 против 5.5.7): На каждом куске в элементах внутри шрифта BASEFONT не равно нулю только: ({itextSharp.text.pdf.TrueTypeFontUnicode})

image

on version 5.5.7 BaseFont - null.

Я использую только шрифт столетия готики (в html) (зарегистрирован в FontFactory).

Что не хватает, чтобы заставить его работать в новой версии?

ответ

4

У меня тоже такая же проблема, мой турецкий характер отсутствует в моем PDF. Я исправлю это.

String htmlText = html.ToString(); 

    Document document = new Document(); 

    string filePath = HostingEnvironment.MapPath("~/Content/Pdf/"); 
    PdfWriter.GetInstance(document, new FileStream(filePath + "\\pdf-"+Name+".pdf", FileMode.Create)); 
    document.Open(); 

    iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document); 
    FontFactory.Register(Path.Combine(_webHelper.MapPath("~/App_Data/Pdf/arial.ttf")), "Garamond"); // just give a path of arial.ttf 
    StyleSheet css = new StyleSheet(); 
    css.LoadTagStyle("body", "face", "Garamond"); 
    css.LoadTagStyle("body", "encoding", "Identity-H"); 
    css.LoadTagStyle("body", "size", "12pt"); 

    hw.SetStyleSheet(css); 

    hw.Parse(new StringReader(htmlText)); 

пожалуйста, смотрите здесь Missing Character issue in PDF using Itext

С уважением, Vinit Patel

Смежные вопросы