c# - Aspose.Words 第一次保存到 PDF 很慢
问题描述
有什么方法可以减少Document.Save
Aspose.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
解决方案
在第一次运行时,Aspose.Words 会初始化资源,例如将文档呈现为 PDF 所需的字体。UpdatePageLayout 没有任何区别,因为它在需要文档布局时在内部调用 - 当文档保存为固定页面格式(PDF、XPS、图像、PS 等)或需要评估索引字段(如 TOC 或 PAGE)时.
作为一种解决方法,我可以建议您在应用程序启动时运行这样的代码。这将初始化所需的资源,第一次真正的调用不会花费很长时间。
Document doc = new Document();
doc.UpdatePageLayout();
披露:我在 Aspose.Words 团队工作。
推荐阅读
- graphql - GraphQl 单向关系
- reactjs - 使用变量获取道具内部的值
- android - 在 Jetpack Compose 中设置大通知图标不起作用
- javascript - 角度错误 TS1005 中的 lit-html: ';' 预期的
- javascript - 如何在浏览器中阅读pdf、doc和excel
- android - Android profiler 没有列出所有会话选项,只列出“没有可调试的进程
- typescript - 如何使用意外令牌解决 ESLint 错误?
- javascript - 如何在 Node.js 中调用 app.post 中的函数?
- localization - Blazor WASM 中的 Resx:使用 Resx 文件的旧静态方式的“问题”是什么?
- wildfly - 向 Wildfly 23 添加 smallrye 跟踪