使い方
- PDF をドロップエリアにドラッグするか、クリックして選択します(100 MB まで)。
- プレビューを見て、正しい文書かどうかを確認します。
- API リクエストには「Base64」、Web ページに PDF を埋め込む場合は「Data URI」を選びます。
- 結果を「コピー」するか、.txt ファイルとして「ダウンロード」します。
JSON API で PDF を送信する
JSON にはバイナリ型がないため、文書を受け取る REST API では通常、Base64 文字列として受け渡します。電子署名プラットフォーム、請求書・電子請求システム、印刷・郵送サービス、OCR エンジン、文書アーカイブなどでは、content、file、documentBase64 といったフィールドで PDF を受け付け、ファイル名は別のフィールドで指定するのが一般的です。同じ方法で PDF を返すサービスもあり、Base64 を PDF に変換を使えばファイルに戻せます。
API ドキュメントに特に指定がない限り、改行なしの Base64 文字列を送信してください。data:application/pdf;base64, プレフィックスが付いたままの値は、多くの API で拒否されます。リクエストサイズの上限にも注意が必要です。7.5 MB の PDF は約 10 MB の Base64 になります。
Base64 化された PDF の見分け方
PDF ファイルは %PDF- という文字とそれに続くバージョン番号で始まります。このバイト列を Base64 にエンコードすると、必ず JVBERi0 で始まる文字列になります。API のレスポンス、データベースのカラム、ログファイルに JVBER で始まる長い文字列があれば、ほぼ確実に PDF です。ペイロードを送信する前にも同じ確認ができます。文字列がほかの文字で始まっている場合は、別のデータをエンコードしたか、二重にエンコードした可能性があります。
HTML に PDF を埋め込む
data URI を使うと、PDF 全体を HTML ページの中に配置でき、別途ファイルをホストする必要がありません。
<embed src="data:application/pdf;base64,JVBERi0..." type="application/pdf" width="100%" height="600">
<iframe src="data:application/pdf;base64,JVBERi0..." width="100%" height="600"></iframe>
この方法は PDF ビューアーを内蔵したデスクトップブラウザでは動作しますが、制限もあります。多くのモバイルブラウザは、ページ内に PDF をまったく表示できません。また、Chrome などのブラウザでは、ページがタブ全体を data: URL に移動させることがブロックされるため、data:application/pdf URI を指すリンクや window.open の呼び出しでは、空白のタブが開くか、何も起こらないことがあります。JavaScript から新しいタブで PDF を開くには、代わりに Base64 を Blob URL に変換してください。数 MB を超える文書では、通常のファイル URL を使うほうが一般的に適しています。
コードで PDF をエンコードする
# Python:JSON リクエストボディを作成
import base64, json
from pathlib import Path
pdf_b64 = base64.b64encode(Path('invoice.pdf').read_bytes()).decode('ascii')
body = json.dumps({'filename': 'invoice.pdf', 'content': pdf_b64})
// ブラウザ:file は <input type="file"> から取得
const reader = new FileReader();
reader.onload = () => {
const pdfBase64 = reader.result.split(',')[1]; // data URI のプレフィックスを除去
};
reader.readAsDataURL(file);
よくある質問
PDF の Base64 文字列が JVBERi0 で始まるのはなぜですか?
%PDF- を Base64 にエンコードしたものです。この文字で始まっていれば、文字列に PDF が含まれていることがわかります。変換時に PDF はアップロードされますか?
いいえ。ファイルの読み込み、エンコード、プレビューはすべてブラウザ内でローカルに行われます。契約書、請求書などの機密文書がお使いのデバイスの外に出ることはありません。
エンコードによって PDF が変更・圧縮されることはありますか?
いいえ。Base64 文字列をデコードするとまったく同じバイト列に戻るため、パスワード保護、デジタル署名、フォームフィールド、メタデータはすべて保持されます。テキストは PDF より約 33% 大きくなります。サイズを小さくしたい場合は、エンコードする前に PDF を圧縮してください。
「76 文字で改行」はオンにすべきですか?
形式上必要な場合だけです。たとえば MIME メールを手作業で組み立てる場合は、添付ファイルの 1 行が 76 文字に制限されます。JSON API や HTML の data URI では、途切れのない 1 行の文字列が必要です。
PDF のサイズはどこまで対応していますか?
このツールは 100 MB までのファイルに対応しています。API では実際の上限はたいていもっと低いため、リクエストの最大サイズを確認し、Base64 にすると約 3 分の 1 増えることも考慮してください。非常に長い出力は画面への表示に時間がかかることがあるため、大きな文書では「ダウンロード」を使用してください。