如何在带有图像和字体的后端nodeJs中使用@react-pdf/renderer

How to use @react-pdf/renderer in backend nodeJs with Images and fonts

我有一个 nodeJs 应用程序,我想在后端使用 @react-pdf/renderer 创建 pdf 图书馆。我的 pdf 包含图像和外部字体。有什么办法吗? 提前致谢..

因为你使用的是@react-pdf/renderer你需要在nodejs中安装react。所以你应该有 es6 支持。

为此安装这些包

"@babel/core": "^7.12.17",
"@babel/preset-env": "^7.12.17",
"@babel/preset-react": "^7.16.5",
"babel-cli": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-stage-0": "^6.24.1",
"babel-runtime": "^6.26.0",

使用此内容创建一个 .babelrc 文件

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    [
      "@babel/transform-runtime"
    ]
  ]
}

您的脚本应如下所示

"scripts": {
    "start": "node dist/index.js", # Your Path 
    "dev": "babel-node src/index.js", # Your Path 
    "build": "babel src -d dist", # If using build
  },

完成配置后,您可以按如下方式使用@react-pdf/renderer

import React from 'react';
import ReactPDF from '@react-pdf/renderer';

const pdfStream = await ReactPDF.renderToStream(<MyDocument />);
res.setHeader('Content-Type', 'application/pdf');
pdfStream.pipe(res);
pdfStream.on('end', () => console.log('Done streaming, response sent.'));

有关详细信息,请参阅 https://react-pdf.org/advanced#usage-with-express.js