首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iTextSharp XmlWorker:从右到左

iTextSharp XmlWorker:从右到左
EN

Stack Overflow用户
提问于 2012-05-09 14:23:39
回答 1查看 4.7K关注 0票数 2

在与这个不太友好的API斗争了很长一段时间后,我终于取得了进展,但现在我遇到了一个非常棘手的问题。我在html中的不同位置放置了"dir“属性,其值为”rtl“。但XMLWorker似乎一点也不尊重这一点。有没有人知道解决办法?下面是我的方法:

代码语言:javascript
复制
public static void Generate<TModel>(string templateFile, TModel model, string outputFile, IEnumerable<string> fonts)
        {
            string template = System.IO.File.ReadAllText(templateFile);
            string result = Razor.Parse(template, model);

            using (var fsOut = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
            using (var stringReader = new StringReader(result))
            {
                var document = new Document();
                var pdfWriter = PdfWriter.GetInstance(document, fsOut);
                pdfWriter.InitialLeading = 12.5f;
                document.Open();

                var xmlWorkerHelper = XMLWorkerHelper.GetInstance();

                var cssResolver = new StyleAttrCSSResolver();
                //cssResolver.AddCss(cssFile);

                var xmlWorkerFontProvider = new XMLWorkerFontProvider();

                foreach (string font in fonts)
                {
                    xmlWorkerFontProvider.Register(font);
                }

                var cssAppliers = new CssAppliersImpl(xmlWorkerFontProvider);
                var htmlContext = new HtmlPipelineContext(cssAppliers);
                htmlContext.SetTagFactory(Tags.GetHtmlTagProcessorFactory());

                PdfWriterPipeline pdfWriterPipeline = new PdfWriterPipeline(document, pdfWriter);
                HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, pdfWriterPipeline);
                CssResolverPipeline cssResolverPipeline = new CssResolverPipeline(cssResolver, htmlPipeline);
                XMLWorker xmlWorker = new XMLWorker(cssResolverPipeline, true);
                XMLParser xmlParser = new XMLParser(xmlWorker);
                xmlParser.Parse(stringReader);

                document.Close();
            }
        }
EN

回答 1

Stack Overflow用户

发布于 2013-08-15 18:47:59

我已经创建了一个示例来展示如何使用XMLWorker解析和显示RTL数据。Download it from here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10510786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档