首页 > 解决方案 > Aspose.Words 第一次保存到 PDF 很慢

问题描述

有什么方法可以减少Document.SaveAspose.Words 方法第一次运行的执行时间?

考虑:

for (var i = 0; i < 5; i++)
    Run();

static void Run()
{
    var sw = new Stopwatch();
    sw.Start();

    var doc = new Document();
    //doc.UpdatePageLayout(); // Makes no difference
    var memoryStream = new MemoryStream();
    doc.Save(memoryStream, SaveFormat.Pdf);

    sw.Stop();
    Console.WriteLine(sw.ElapsedMilliseconds);
}

此代码将输出:

881
3
2
3
3

标签: c#.netaspose.words

解决方案


在第一次运行时,Aspose.Words 会初始化资源,例如将文档呈现为 PDF 所需的字体。UpdatePageLayout 没有任何区别,因为它在需要文档布局时在内部调用 - 当文档保存为固定页面格式(PDF、XPS、图像、PS 等)或需要评估索引字段(如 TOC 或 PAGE)时.

作为一种解决方法,我可以建议您在应用程序启动时运行这样的代码。这将初始化所需的资源,第一次真正的调用不会花费很长时间。

Document doc = new Document();
doc.UpdatePageLayout();

披露:我在 Aspose.Words 团队工作。


推荐阅读