当前位置: 首页 > 知识库问答 >
问题:

使用Chrome-Print-to-PDF--Headless打印html太快?

何勇
2023-03-14

我使用cmd并键入“chrome--headless--disable-gpu--print-to-pdf=d:\project\test.pdf http://localhost:8085/t1/index.html?data=http://localhost:8085/1/mock.json”

生成的pdf为空。我想原因是我使用了fetch来获取mock.json和

dom没有足够的时间完全呈现。如果我只导入mock.json和

pdf可以完美地呈现。那么,有没有什么方法可以延迟打印到PDF的过程呢?

谢谢!

共有1个答案

苍意智
2023-03-14

我通过使用名为html-pdf-chrome的sweet nodeJS包解决了这个问题,它通过指示Chrome等待超时、调用回调函数或页面上的选择器存在来解决这个问题。

我的代码:

const PRINT_OPTIONS = {
  clearCache: true,
  printOptions: {
    scale: 0.6
  },

  completionTrigger: new HtmlPdf.CompletionTrigger.Timer(5000)  // Give it 5000ms to render the HTML
};

async function outputHTMLToPDF(sourceHTML, outputFilename) {
  console.log("Printing the html using Chrome...");
  let pdf = await HtmlPdf.create(sourceHTML, PRINT_OPTIONS);

  console.log("Saving the PDF to " + outputFilename + "...");
  await pdf.toFile(path.join(DEFAULT_PRINT_PATH, outputFilename));
});
 类似资料:
  • 我尝试在chrome中启用--kiosk打印的情况下打印pdf。pdf在本地可用。 以下是我的测试代码: 当我运行打印时,Chrome显示消息 打印失败 尝试打印时出错。请检查打印机并重试。 我使用Chrome的最新版本:91.0.4472.164(Offizieller Build)(64位)

  • 我正在尝试使用Chrome的Headless功能将html转换为PDF。然而,我根本得不到输出。控制台也不显示任何错误。我正在我的windows M/C中运行以下命令。 chrome--无头--禁用GPU--打印到PDF 我试过了所有的选择。没有生成任何内容。我用的是chrome版本60

  • 这个程序将让你了解如何在C中打印数组。我们需要声明和定义一个数组,然后循环到数组的长度。 在每次迭代时,我们将打印一个数组的索引值。 我们可以从迭代本身获取此索引值。 算法 (Algorithm) 让我们首先看看该程序的逐步程序应该是什么 - START Step 1 → Take an array A and define its values Step 2 → Loop for e

  • 我有一个连接到CUPS的打印机,它支持双面打印,如何通过java例程将其设置为单面打印或双面打印? 我曾尝试使用它的库使用ASET添加和addViewer首选项没有任何运气。 有人能提供一些建议吗?

  • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

  • 本章介绍如何在电子表格中设置打印区域。 通常的打印区域是Excel电子表格中从左上角到右下角。 打印区域可根据您的要求定制。 这意味着您可以从整个电子表格中打印特定范围的单元格,自定义纸张大小,打开打开网格线的内容等。 以下代码用于在电子表格上设置打印区域。 import java.io.File; import java.io.FileOutputStream; import org.apach