多线程生成

IronPDF 提供线程安全的 PDF 生成功能,并在使用 ChromePdfRenderer 类生成 PDF 文档时支持多线程处理,如以下示例所示。 通过这种方式,您可以同时处理任何规模的PDF生成任务或批量PDF生成任务,而无需担心遇到诸如线程阻塞之类的问题。

多线程 PDF 生成步骤

  • var renderer = new ChromePdfRenderer();
  • var htmlStrings = new List<string>() { "<h1>Html#1</h1>", "<h1>Html#2</h1>", "<h1>Html#3</h1>" };
  • Task<PdfDocument[]> task = Task.WhenAll(htmlStrings.Select(html => renderer.RenderHtmlAsPdfAsync(html)));
  • List<PdfDocument> pdfList = task.Result.ToList();

    在多线程环境中生成PDF文档的第一步是创建一个新的ChromePdfRenderer实例。 这让我们能够访问IronPDF强大的渲染引擎,可以生成像素级完美的PDF文档。 然后,我们将创建一个新的字符串对象列表,称为htmlStrings。 此列表充满了我们将在多线程环境中用于生成PDF文档的HTML字符串。

    接下来,我们需要使用异步编程将所有的 HTML 字符串同时渲染为 PDF 文件。 htmlStrings.Select(html => renderer.RenderHtmlAsPdfAsync(html)) 遍历我们的 HTML 字符串列表,并通过 renderer 调用每个找到的字符串上的 RenderHtmlAsPdfAsync 方法,将它们转换为 PDF 文档。 Task.WhenAll() 用于将异步任务累积到一个任务中,该任务将在所有单独的 RenderHtmlAsPdfAsync 调用完成后完成。 然后,它将返回一个新的PdfDocument对象数组。

    最后,我们将获取我们的PDF生成结果。 task.Result 阻止当前线程,直到所有异步 PDF 渲染任务完成并检索结果 PdfDocument 对象数组。 然后,ToList() 会将 PdfDocument 对象的数组转换为 pdfList 列表,以便于进一步操作 PDF 文档。 点击此处查看操作指南,其中包括示例、示例代码和文件。