跳到主要内容

从模板或 API 获取 HTML 代码?用 n8n 将其转换为 PDF!仅需三个节点,无需托管。

· 阅读需 14 分钟
SEO and Content Writer

您有来自模板、网页或 API 响应的 HTML 代码,但需要将其转换为 PDF 文件。手动导出或复制到 Word 文档的方式效率低下。 n8nPDF4me 只需三个步骤即可将 HTML 转换为 PDF:触发 → 上传 → 转换。无需服务器,无需自定义代码。粘贴 Base64 编码的 HTML,将 URL 映射到转换器,即可完成转换。 output.pdf可供下载、通过电子邮件发送或存储。

简而言之: 点击“执行工作流”时 (触发)→ 上传文件到 PDF4me (Base64 HTML)→ 将 HTML 转换为 PDF (映射上传文件的 documentUrl)。输出:PDF 二进制文件(例如 29.2 kB),提供下载、JSON 和表格视图。

为什么选择这种工作流程? PDF4me 的 将 HTML 转换为 PDF n8n 接受通过 URL、二进制或 Base64 编码的 HTML。当您的 HTML 在 n8n 内部生成时(例如,来自代码节点或 HTTP 响应),您首先需要…… 上传文件到 PDF4me 获得临时 文档网址然后将该 URL 传递给 将 HTML 转换为 PDF两个 PDF4me 节点。一个流程。


基于原因的问答

为什么要先上传再转换? 转换节点需要从 HTML 接收数据。 URL二进制, 或者 Base64当 HTML 来自表达式或其他节点的输出(而非公共 URL)时,必须先上传。PDF4me 返回 文档网址转换器可以获取的临时链接。

为什么使用 Base64 编码而不是 URL? 当 HTML 代码在 n8n 内部生成时,例如通过模板、API 或代码节点生成,Base64 编码是理想之选。您无需将文件托管在任何地方。只需粘贴 Base64 字符串,设置保留期限(例如 2 小时),上传节点即可处理其余操作。

为什么 {{ $json.documentUrl }} 上传节点的输出 文档网址 在每个项目中。转换节点的 HTML URL 字段需要该值。请使用表达式 {{ $json.documentUrl }} 从上一步传递下去。

为什么要设置文件保留时间? 上传的文件会临时存储。类似这样的值 2 确保文件保留足够长的时间,以便“转换”步骤能够运行。如果您的工作流程存在延迟或循环,请进行相应调整。


您将获得

输入: Base64 编码的 HTML(例如,来自模板或 API)。 输出: PDF 文件(例如 output.pdf(~29.2 kB)在工作流输出中,可在架构、表格、JSON 或二进制选项卡中查看,并带有下载按钮。


你需要什么

  • n8n自托管或 n8n 云从节点面板添加 PDF4me 节点。
  • PDF4me API密钥获取您的 API 密钥添加 PDF4me 节点时,请将其连接。第一次使用?请按照以下步骤操作。 将 PDF4me 连接到 n8n
  • HTML 内容此工作流程采用 Base64 格式。可以使用代码节点或外部源生成此格式。

流程概览

  1. 点击“执行工作流”时:手动触发用于测试。可替换为 webhook、计划任务或文件触发以实现自动化。
  2. 上传文件到 PDF4me将 Base64 HTML 发送到 PDF4me,并返回结果 文档网址
  3. 将 HTML 转换为 PDF从 HTML 中获取 文档网址输出PDF二进制文件。

完整工作流程概述

n8n 工作流程:点击“执行工作流程”→“上传文件到 PDF4me”→“将 HTML 转换为 PDF”后,每个节点都会显示绿色对勾。

三个节点依次排列:手动触发 → 上传文件至 PDF4me → 将 HTML 转换为 PDF。每个连接都显示“1 个项目”通过。绿色对勾表示运行成功。


步骤 1:将文件上传到 PDF4me

目前的情况: 仅触发。

  1. 添加 PDF4mePDF4me 资源 → 上传文件到 PDF4me 手术。
  2. 用于连接的凭证选择您的 PDF4me 连接。
  3. 输入数据类型Base64字符串
  4. Base64 文件内容请粘贴您的 Base64 编码后的 HTML 代码。示例开头如下: PCFET0NUWVBFIGh0bWw+... (解码为) <!DOCTYPE html>)。
  5. 文件保留时间例如 2 (将文件保留以供下一步使用)。
  6. 点击 执行步骤 进行测试。输出结果将包括 文档网址

上传文件到 PDF4me:参数面板

PDF4me 上传文件至 PDF4me:输入数据类型 Base64 字符串、Base64 文件内容、文件保留时间 2 小时

参数选项卡:凭据(PDF4me 连接)、资源(PDF4me)、操作(上传文件到 PDF4me)、输入数据类型(Base64 字符串)、Base64 文件内容字段(HTML)、文件保留时间设置为 2。

提示: 如果您的 HTML 来自另一个节点(例如代码或 HTTP 请求),请使用如下表达式: {{ $json.base64Content }} 不要粘贴。请确保该值是有效的 Base64 编码。


步骤 2:将 HTML 转换为 PDF

目前的情况: 触发器 → 上传文件到 PDF4me。

  1. 添加 PDF4me转变 资源 → 将 HTML 转换为 PDF 手术。
  2. 用于连接的凭证:与 PDF4me 连接相同。
  3. 输入数据类型URL
  4. HTML URL切换到 表达 并进入 {{ $json.documentUrl }}这会映射上传步骤中的 URL。
  5. HTML文件名例如 document.html
  6. 索引文件路径例如 index.html (适用于多文件 HTML 项目)。
  7. 布局肖像 (或风景)。
  8. 格式A4
  9. 规模0.8 (100% = 1.0)。
  10. 上、下、左、右边距例如 40像素 每个。
  11. 打印背景:关闭(或开启,如果您需要背景)。
  12. 显示页眉页脚:关闭(或开启以显示页码)。
  13. 输出文件名例如 output.pdf
  14. 二进制数据输出名称数据 (PDF 二进制文件的字段)。
  15. 点击 执行步骤输出结果将显示 PDF 文件,包括文件名、文件扩展名、MIME 类型、文件大小以及下载按钮。

将 HTML 转换为 PDF:参数和布局设置

将 HTML 转换为 PDF:HTML URL 表达式,布局为纵向,格式为 A4,缩放比例为 0.8,边距为 40px,输出文件名为 output.pdf

参数选项卡:输入数据类型(URL)、HTML URL 表达式、HTML 文件名(document.html)、索引文件路径(index.html)、布局(纵向)、格式(A4)、缩放(0.8)、边距(40px)、输出文件名(output.pdf)和二进制数据输出名称(data)。

将 HTML 转换为 PDF:映射上传步骤中的 documentUrl

将 HTML 转换为 PDF 输入:来自上传文件的 documentUrl 到 PDF4me

输入部分已展开:来自“上传文件到 PDF4me”的 documentUrl 被传递到 HTML URL 字段中,该表达式映射上传节点返回的临时 URL。


步骤 3:检查输出

“转换”节点的“输出”面板显示:

场地价值
文件名output.pdf
文件扩展名pdf
哑剧类型应用程序/pdf
文件大小29.2 kB(示例)

使用 模式桌子JSON, 或者 二进制 要检查的标签页。 下载 按钮会将PDF文件保存到本地。

输出:已生成可供下载的 PDF 文件

输出:1 个项目,output.pdf,29.2 kB,下载按钮,已选择“二进制”选项卡

输出面板:包含 1 个项目,文件名 (output.pdf)、文件扩展名 (pdf)、MIME 类型 (application/pdf)、文件大小 (29.2 kB) 和一个下载按钮。已选择“二进制”选项卡以查看生成的 PDF 文件。


使用场景:何时在 n8n 中使用 HTML 转 PDF

发票和报价单生成: 从 CRM 或数据库数据(例如 Airtable、Google Sheets)生成 HTML。转换为 PDF 并通过电子邮件发送或上传到云存储。同一模板,动态数据。

利用人工智能洞察生成报告: 使用 AI 节点生成内容,将其格式化为 HTML,然后转换为 PDF 供利益相关者查看。非常适合用于每周摘要、总结或分析报告。

证书和徽章: 根据培训或活动数据创建 HTML 证书。转换为 PDF 格式并通过电子邮件发送或存储在文档管理系统中。

文档归档和电子邮件转PDF: 解析 HTML 电子邮件或网页内容,转换为 PDF,并存档到 Dropbox、Google Drive 或合规系统中。

入职和合规文件: 根据模板和用户数据生成个性化的新员工入职PDF文件。自动生成手册、政策或合规文件。


快速参考:关键设置

节点环境例子
1. 将文件上传到 PDF4me输入数据类型Base64字符串
1. 将文件上传到 PDF4me文件保留时间2
2. 将 HTML 转换为 PDFHTML URL{{ $json.documentUrl }}
2. 将 HTML 转换为 PDF输出文件名output.pdf

有关完整的参数详细信息,请参阅 将 HTML 转换为 PDF,n8n


故障排除

转换步骤:“documentUrl”未定义

确保上传节点在转换节点之前运行,并且您使用 {{ $json.documentUrl }} (或者 {{ $('Upload file to PDF4me').item.json.documentUrl }} 如果您有多个节点)。表达式必须引用输出节点。 文档网址

Base64解码错误

请验证您的 Base64 字符串是否有效,并且不包含 data-URI 前缀(例如: data:text/html;base64,如果使用代码节点,请确保 Buffer.from(html).toString('base64') 或同等方法可以生成干净的 Base64 编码。

401、402 或其他 API 错误

PDF4me故障排除 涵盖 401(API 密钥)、402(积分)等。


接下来是什么?

  • Webhook 或者 日程 自动运行该流程。
  • 添加一个 上传文件 转换后,使用节点(Dropbox、Google Drive)将 PDF 保存到云存储。
  • 使用 HTML 代码 或者 二进制数据 如果您的 HTML 来自其他来源,请参阅“输入数据类型”部分。 将 HTML 转换为 PDF,n8n 所有选项。