NodeJS-压缩通过JSReport Chrome-PDF食谱呈现的PDF

时间:2018-06-19 17:30:50

标签: javascript node.js pdf google-chrome-headless jsreport

我正在使用jsreport Chrome-PDF配方在Node.js中生成PDF。我加载了一个外部HTML文件,并将其用作报告的模板,然后将生成的报告通过管道传送回浏览器。我的设置如下:

await jsReport.init()

try {
  const out = await jsReport.render({
    template: {
      content: html,
      engine: 'handlebars',
      recipe: 'chrome-pdf',
      chrome: {
        format: 'Letter',
        printBackground: true,
        marginTop: '0.25in',
        marginRight: '0.5in',
        marginBottom: '0.25in',
        marginLeft: '0.5in'
      }
    },
    data: {
      myData: myData
    }
  })

  return out.stream.pipe(res)
} catch(err) {
  return res.status(500).send(err)
}

PDF将加载到浏览器中,看起来很棒!但是,当我保存报告时,文件大小约为25 MB。渲染的PDF中有一些图像,但这显然比需要的要大。

我可以获取文件并通过Smallpdf或Acrobat之类的服务运行该文件,文件大小不到200 KB。有什么方法可以减少流到客户端之前的初始文件大小?我希望避免客户每次生成报告时都必须使用外部软件,也希望避免使用第三方API来进行收费压缩。

0 个答案:

没有答案