gpt4 book ai didi

c# - itextsharp(xmlworker) 解析很慢

转载 作者:行者123 更新时间:2023-11-28 08:29:45 24 4
gpt4 key购买 nike

我一直在使用 iTextSharp 将 MVC View 转换为 pdf。该 View 使用内联样式。以下代码一切正常但解析速度很慢-

        using (var ms = new MemoryStream())
{
using (var doc = new Document(PageSize.A4, 0, 1, 0,0))
{


using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();

XMLWorkerHelper.GetInstance().ParseXHtml(writer,doc, htmlcontent);
//Above line is too slow
doc.Close();
}
}

按照此处专家的建议,我继续进行以下修改-

  • 注册字体
  • 将样式移动到不同的 css 文件

现在我正在使用下面的代码,但是生成的 pdf 是空白的。它确实保留了样式但没有字体并且即使这种方法也需要相同的时间来解析

using (var ms = new MemoryStream())
{
using (var doc = new Document(PageSize.A4, 0, 1, 0,0))
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{

doc.Open();

// css
var cssResolver = new StyleAttrCSSResolver();
var cssFile = XMLWorkerHelper.GetCSS((new FileStream(Server.MapPath("~/Content/scptpdf.css"), FileMode.Open, FileAccess.Read)));
cssResolver.AddCss(cssFile);

// html
var fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
fontProvider.Register(Server.MapPath("~/Content/fonts/arial.ttf"));
fontProvider.Register(Server.MapPath("~/Content/fonts/arialbd."));
fontProvider.AddFontSubstitute("calibri","ARIAL");

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

var pdf = new PdfWriterPipeline(doc, writer);
var html = new HtmlPipeline(htmlContext, pdf);
var css = new CssResolverPipeline(cssResolver, html);

var worker = new XMLWorker(css,true);
var p = new XMLParser(worker);

byte[] byteArray = Encoding.UTF8.GetBytes(pdftext);
var htmlstream = new MemoryStream(byteArray);
p.Parse(htmlstream);

//XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, htmlcontent);

doc.Close();
}
}

我需要克服延迟。可以帮忙吗?提前致谢。

最佳答案

我删除了字体类型。现在 iTEXT sharp 使用它自己的。它也很快。

关于c# - itextsharp(xmlworker) 解析很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28331295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com