Base64 Files
API · JSON · cURL · 无需上传

PDF 转 Base64 转换器

将任意 PDF 转换为 Base64——并获取可直接使用的 JSON 载荷、fetch 代码片段或 cURL 命令。全程在浏览器中运行,PDF 文件不会被上传。

PDF 转 Base64

拖拽 PDF 到此处或 点击选择文件

仅支持 PDF 文件 · 最大 25 MB

上传 PDF 文件后显示 Base64 输出

何时对 PDF 使用 Base64:Base64 最适合用于 JSON API 载荷中的小型 PDF 文件。对于大型 PDF,二进制上传或 multipart/form-data 通常更高效。

如何将 PDF 转换为 Base64

1

上传 PDF 文件

将 PDF 文件拖放到上传区域,或点击浏览文件。文件完全在浏览器中读取——不会向任何服务器发送任何数据。

2

选择输出格式

根据使用场景选择原始 Base64、Data URL、JSON 载荷、API fetch 代码片段或 cURL 命令。

3

复制或下载

点击「复制」将结果发送到剪贴板。对于较大的 PDF,请使用「下载 .txt」将完整输出保存为文件。

在 API 中使用 PDF Base64——代码示例

在实际 API 调用中发送 Base64 编码 PDF 的常用方式。

Node.js fetchjs
const fs = require('fs')

const pdfBuffer = fs.readFileSync('document.pdf')
const base64 = pdfBuffer.toString('base64')

await fetch('https://api.example.com/upload', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    filename: 'document.pdf',
    mime: 'application/pdf',
    encoding: 'base64',
    data: base64,
  }),
})
Python requestspython
import base64, requests

with open('document.pdf', 'rb') as f:
    b64 = base64.b64encode(f.read()).decode()

requests.post('https://api.example.com/upload', json={
    'filename': 'document.pdf',
    'mime': 'application/pdf',
    'encoding': 'base64',
    'data': b64,
})
cURL with heredocbash
B64=$(base64 -i document.pdf)

curl -X POST https://api.example.com/upload \
  -H 'Content-Type: application/json' \
  -d @- <<EOF
{
  "filename": "document.pdf",
  "mime": "application/pdf",
  "encoding": "base64",
  "data": "$B64"
}
EOF
SendGrid 邮件附件js
const attachment = {
  content: base64String,   // your Base64 PDF
  filename: 'invoice.pdf',
  type: 'application/pdf',
  disposition: 'attachment',
}

await sgMail.send({
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Your invoice',
  text: 'Please find your invoice attached.',
  attachments: [attachment],
})

何时对 PDF 使用 Base64

最适合需要通过 JSON 传输或直接嵌入标记的小型 PDF。

REST API 文件上传

通过基于 JSON 的 API 发送 PDF,无需使用 multipart/form-data。Base64 可将文件直接内联到 JSON 请求体中。

邮件 API 附件

SendGrid、Mailgun 和 AWS SES 等服务支持直接在 JSON 载荷中接收 Base64 编码的 PDF 附件。

在 HTML 中嵌入 PDF

使用 Data URL 格式将 PDF 直接嵌入 HTML 的 object 或 iframe 标签中——无需单独托管文件。

存储到 JSON 数据库

将小型 PDF 以 Base64 字符串字段的形式直接嵌入 MongoDB 文档、Firebase 实时数据库或 DynamoDB 中。

常见问题

对 PDF 应该使用 Base64 还是二进制上传?

对于 JSON API 载荷中的小型 PDF(1 MB 以内),且不支持 multipart/form-data 或使用起来较复杂时,建议使用 Base64。对于较大的 PDF,通过 multipart/form-data 进行二进制上传或直接 PUT 到签名 URL 会更高效,且能避免约 33% 的体积开销。

PDF 的 Data URL 格式是什么?

PDF Data URL 以 data:application/pdf;base64, 为前缀,后跟 Base64 字符串。可用作 HTML object 或 embed 标签的 src 或 data 属性值。

可以在 HTML 中嵌入 Base64 PDF 吗?

可以。使用带 data="data:application/pdf;base64,..." 属性的 object 标签,或带 src="data:application/pdf;base64,..." 的 iframe。浏览器支持情况不一——Chrome 和 Firefox 支持良好;Safari 在某些情况下有限制。

Base64 编码会改变 PDF 内容吗?

不会。Base64 是无损的——它将二进制 PDF 字节转换为 ASCII 文本再还原,不做任何修改。解码后的文件与原始文件逐字节完全相同。

为什么 Base64 输出比原始 PDF 更大?

Base64 将 3 个字节编码为 4 个 ASCII 字符,增加约 33% 的体积开销。1 MB 的 PDF 会产生约 1.37 MB 的 Base64 文本。这是 Base64 编码的固有特性,无法避免。

PDF 文件会上传到服务器吗?

不会。所有编码均在浏览器中通过 File API 完成。您的 PDF 数据不会离开设备——断网后使用,工具依然正常运行。