itextsharp与xmlworker的5.5.3版本与5.5.7版本在最新版本中缺少抛光字符

本文关键字:版本 新版本 字符 抛光 xmlworker itextsharp 最新版 | 更新日期: 2023-09-27 18:22:11

目前,我使用的是5.5.3版本,它运行起来没有问题,但我试图更新到最新版本,但我对润色字符有问题(它们只是缺少)。我从rtf转换为html,从html转换为pdf,如下所示:

 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不仅仅为null:({itextSharp.text.pdf。TrueTypeFontUnicode})

图像

在版本5.5.7上,BaseFont为null。

我只使用世纪哥特式字体(html)(在FontFactory注册)。

让它在新版本中工作缺少什么?

itextsharp与xmlworker的5.5.3版本与5.5.7版本在最新版本中缺少抛光字符

我也有同样的问题,我的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)); 

请使用Itext 在PDF中查看此处缺少字符问题

谨致问候,Vinit patel