用途:该技能用于借助 React-PDF 库(@react-pdf/renderer)以 React 组件方式生成 PDF 文档,适合创建 PDF、文档、报告、发票、表单等场景。
主要能力:提供 Document、Page、View、Text、Image、Link、Note、Canvas、Svg、StyleSheet 等核心组件;支持 flexbox 样式、自定义字体、图像嵌入、SVG 矢量图形、图标、内部与外部超链接、动态页码、固定页眉页脚、分页控制、断行与孤行控制、Canvas 绘图、注释及文档元数据。渲染方式包括 renderToFile 输出到文件和 renderToBuffer 输出到缓冲区。
使用方式:先执行 npm install react @react-pdf/renderer 与 npm install -D tsx @types/react;用 tsx 运行含 JSX 的脚本,如 npx tsx my-document.tsx。渲染必须包裹在异步 IIFE 中,例如 (async () => { await renderToFile(<MyDocument />, "./output.pdf"); })(),避免顶层 await 报错。预览可用 pdftoppm -png -r 200 document.pdf preview,或在不可用时用 Python 的 PyMuPDF 转换页面为图像。字体方面,教程强调必须使用本地文件路径,远程 http/https 字体 URL 不可用;注册自定义字体后需调用 Font.registerHyphenationCallback((word) => [word]) 禁用连字,内置字体为 Courier、Helvetica、Times-Roman。可通过 references/google-fonts.txt 查找字体 URL 并下载,用 file 命令验证是否为 TrueType Font data。
适用场景:生成结构化、样式可控的 PDF,如发票、报告、表单及需要页眉页脚和页码的文档。
限制:远程字体 URL 不生效,SVG 文件不能作为 Image 的 src,需用 Svg 组件重建;图像建议本地文件,远程可能因网络或 CORS 失败;文档未提供价格、收费、平台或效果说明,部分 API 细节需参考 references/components.md。