[{"data":1,"prerenderedAt":2338},["ShallowReactive",2],{"blog-tag-ja-pdf":3},[4,245,745,1064,1259,1486],{"id":5,"title":6,"author":7,"body":8,"category":226,"coverImage":227,"description":228,"draft":229,"extension":230,"locale":231,"meta":232,"navigation":233,"noindex":233,"path":234,"publishedAt":235,"seo":236,"slug":237,"stem":238,"tags":239,"updatedAt":235,"__hash__":244},"blog\u002Fblog\u002Fimage-to-pdf-intro.md","画像を 1 つの PDF にまとめる — \u002Ftools\u002Fimage-to-pdf の思想と使い方","Zerosend Editorial",{"type":9,"value":10,"toc":216},"minimark",[11,15,23,27,56,59,62,69,76,79,105,108,114,145,148,151,157,168,174,185,188],[12,13,14],"p",{},"スマホで撮ったレシート 10 枚を経費精算で PDF にまとめる、スキャンした書類 15 枚を 1 つの PDF にまとめて申請する、商品写真を PDF カタログにする。「画像 → PDF」の変換は、個人から業務まで頻繁に発生する作業です。",[12,16,17,22],{},[18,19,21],"a",{"href":20},"\u002Ftools\u002Fimage-to-pdf","Zerosend の画像 → PDF 変換ツール"," は、この作業をブラウザ内で完結させます。",[24,25,26],"h2",{"id":26},"主なユースケース",[28,29,30,38,44,50],"ul",{},[31,32,33,37],"li",{},[34,35,36],"strong",{},"写真をポートフォリオ PDF に",": デザイナーや写真家が作品画像を選択して 1 ファイルにまとめ、クライアントへの提案や審査用に配布する",[31,39,40,43],{},[34,41,42],{},"スキャン画像を 1 ファイルに集約",": 複数ページにわたる契約書・申請書をスキャンした画像を 1 つの PDF にまとめて提出する",[31,45,46,49],{},[34,47,48],{},"レシート・領収書の経費精算",": スマホで撮影したレシートをまとめて月次経費書類として提出する",[31,51,52,55],{},[34,53,54],{},"複数画像を順番管理して配布",": ドラッグ&ドロップで並び順を調整しながら、説明資料やマニュアルを PDF にまとめる",[12,57,58],{},"複数の画像ファイルを 1 回の操作で 1 つの PDF に変換できるため、枚数が多いほど手作業との差が際立ちます。",[24,60,61],{"id":61},"なぜブラウザ内で変換するのか",[12,63,64,65,68],{},"画像 → PDF 変換の入力は、写真・スキャン・スクリーンショットです。つまり",[34,66,67],{},"画像 1 枚ずつが個別の機密情報","を持ちます。レシートなら店名・金額・日時・クレカ下 4 桁、スキャン書類なら本文全体、スクショなら画面に写っているすべて。",[12,70,71,72,75],{},"それらをまとめてオンライン PDF 化サービスに投げるのは、",[34,73,74],{},"機密情報セットをまとめて外に出す","ことに他なりません。Zerosend ではローカルで PDF 組み立てまで行うため、アップロードは発生しません。",[24,77,78],{"id":78},"使い方",[80,81,82,90,93,96,99,102],"ol",{},[31,83,84,89],{},[18,85,86],{"href":20},[87,88,20],"code",{}," を開く",[31,91,92],{},"画像を複数枚ドラッグ&ドロップ (JPEG \u002F PNG \u002F WebP)",[31,94,95],{},"ページサイズ (A4 \u002F レター \u002F 画像原寸) と向きを選ぶ",[31,97,98],{},"並び順をドラッグで調整",[31,100,101],{},"「PDF 化を開始する」をクリック",[31,103,104],{},"1 つの PDF ファイルとしてダウンロード",[24,106,107],{"id":107},"仕組み",[12,109,110,113],{},[87,111,112],{},"pdf-lib"," を使って PDF を組み立てています。",[28,115,116,119,125,136,139],{},[31,117,118],{},"各画像を ArrayBuffer で読み込み",[31,120,121,124],{},[87,122,123],{},"PDFDocument.create()"," で新規ドキュメントを作成",[31,126,127,128,131,132,135],{},"ページごとに ",[87,129,130],{},"pdfDoc.embedJpg()"," または ",[87,133,134],{},"embedPng()"," で画像を埋め込み",[31,137,138],{},"ページサイズに合わせて自動で縮小・センタリング",[31,140,141,144],{},[87,142,143],{},".save()"," で最終的な PDF バイト列に",[12,146,147],{},"画像のサイズ指定は縦横比を保持したまま、指定ページサイズに収まるよう計算されます。",[24,149,150],{"id":150},"よくある質問",[12,152,153,156],{},[34,154,155],{},"Q. 画像の順序は変えられますか？","\nA. はい。追加した順に並びますが、ドラッグで並べ替えできます。",[12,158,159,162,163,167],{},[34,160,161],{},"Q. 画像の向き (縦\u002F横) を個別に変えられますか？","\nA. ページ単位の向きは全体で統一されます。個別に回転したい場合は ",[18,164,166],{"href":165},"\u002Ftools\u002Fimage-edit","画像編集"," で先に回転してから PDF 化してください。",[12,169,170,173],{},[34,171,172],{},"Q. OCR (文字認識) はかかる？","\nA. かかりません。画像はそのまま PDF に埋め込まれます。検索可能 PDF にしたい場合は別途 OCR ツールを通してください (プライバシー観点では、OCR もローカルで完結するツールを選ぶべきです)。",[12,175,176,179,180,184],{},[34,177,178],{},"Q. 圧縮は？","\nA. 元画像がそのまま埋め込まれるため、PDF が大きくなりがちです。事前に ",[18,181,183],{"href":182},"\u002Ftools\u002Fimage-compress","画像圧縮"," してから投入すると、最終 PDF が軽くなります。",[24,186,187],{"id":187},"関連ツール",[28,189,190,195,202,209],{},[31,191,192,194],{},[18,193,183],{"href":182}," — PDF 化前に画像を軽くする",[31,196,197,201],{},[18,198,200],{"href":199},"\u002Ftools\u002Fpdf-compress","PDF 圧縮"," — 生成した PDF をさらに軽くする",[31,203,204,208],{},[18,205,207],{"href":206},"\u002Ftools\u002Fpdf-merge","PDF 結合"," — 既存 PDF と結合する",[31,210,211,215],{},[18,212,214],{"href":213},"\u002Ftools\u002Fpdf-to-image","PDF → 画像"," — 逆変換",{"title":217,"searchDepth":218,"depth":218,"links":219},"",2,[220,221,222,223,224,225],{"id":26,"depth":218,"text":26},{"id":61,"depth":218,"text":61},{"id":78,"depth":218,"text":78},{"id":107,"depth":218,"text":107},{"id":150,"depth":218,"text":150},{"id":187,"depth":218,"text":187},"tech",null,"Zerosend の画像 → PDF 変換ツールは、複数画像をサーバーに送らず 1 つの PDF にまとめます。スキャン画像の PDF 化・レシートまとめ・申請書類の体裁整え。Zerosend 編集部が解説。",false,"md","ja",{},true,"\u002Fblog\u002Fimage-to-pdf-intro","2026-04-20",{"title":6,"description":228},"image-to-pdf-intro","blog\u002Fimage-to-pdf-intro",[240,241,242,243],"PDF","画像","変換","ツール","tg5FYgKMGZgx3aC9UAapeIa6b3qfrAqQ56T-BUNyShg",{"id":246,"title":247,"author":7,"body":248,"category":226,"coverImage":227,"description":735,"draft":229,"extension":230,"locale":231,"meta":736,"navigation":233,"noindex":233,"path":737,"publishedAt":235,"seo":738,"slug":739,"stem":740,"tags":741,"updatedAt":743,"__hash__":744},"blog\u002Fblog\u002Fpdf-compress-intro.md","PDF を圧縮する方法：ブラウザだけで完結、サーバー送信ゼロの安全な軽量化",{"type":9,"value":249,"toc":701},[250,253,260,267,270,274,277,281,284,287,290,293,296,298,302,305,309,312,315,318,325,327,331,334,466,469,471,475,480,484,490,494,497,501,504,524,527,531,534,536,540,543,579,582,584,587,590,594,597,601,604,608,611,614,622,624,628,632,635,638,641,645,648,652,655,659,666,668,671,674,677,680],[12,251,252],{},"メールに PDF を添付しようとしたら「ファイルサイズの上限を超えています」と弾かれた。Slack の無料プランでは 1GB のストレージ上限があり、20MB を超えるスキャン PDF を何枚も貼り続けるとすぐに圧迫される。顧客に送る見積書 PDF が 30MB あれば、相手のモバイル回線に余計な負荷をかける。こうした摩擦を一つひとつ取り除くのが PDF 圧縮の実用的な価値だ。",[12,254,255,256,259],{},"ただし PDF 圧縮の手段を選ぶ際に見落とされがちな問題がある。",[34,257,258],{},"圧縮の利便性とプライバシーはトレードオフになりやすい","という点だ。オンラインの圧縮サービスの多くはファイルをサーバーにアップロードする構造を持つ。契約書・給与明細・健康診断書・見積書をそのままクラウドに送ることになるが、「処理後に削除します」という約束がどの程度履行されているかをユーザー側で検証する手段はほぼない。",[12,261,262,263,266],{},"本記事では、PDF 圧縮の仕組みを技術的に整理したうえで、ブラウザ完結型・サーバー送信ゼロの選択肢として ",[18,264,265],{"href":199},"zerosend の PDF 圧縮ツール"," を後半で紹介する。まず原理と比較基準を把握してから、ツールを選んでほしい。",[268,269],"hr",{},[24,271,273],{"id":272},"pdf-のファイルサイズが大きくなる理由","PDF のファイルサイズが大きくなる理由",[12,275,276],{},"PDF のサイズを決める主な要因は三つある。",[278,279,280],"h3",{"id":280},"埋め込みリソースの種類",[12,282,283],{},"PDF の中身は大まかに「ベクタデータ（テキスト・図形）」「ラスタ画像（JPEG・PNG など）」「フォント」に分類できる。スキャナで取り込んだ文書は全ページが高解像度ラスタ画像として埋め込まれるため、数十 MB になりやすい。一方、Word や Google ドキュメントからエクスポートした PDF はテキストがベクタとして保持されるので、ページ数のわりにサイズが小さい。",[278,285,286],{"id":286},"画像の圧縮設定",[12,288,289],{},"スキャン PDF でも、スキャナの設定によってはロスレス PNG や非圧縮ビットマップが埋め込まれている場合がある。同じ 200dpi のスキャンでも JPEG 品質 60 と PNG では 3〜5 倍のサイズ差が生まれる。",[278,291,292],{"id":292},"メタデータとフォント埋め込み",[12,294,295],{},"フォントのサブセット化が行われていない PDF は、使用しているフォントファミリー全体を埋め込むため、数 MB 余計に大きくなることがある。メタデータ（XMP パケット・注釈・リンクアクション）が積み重なるケースもある。",[268,297],{},[24,299,301],{"id":300},"pdf-圧縮の主な方式と得意不得意","PDF 圧縮の主な方式と得意・不得意",[12,303,304],{},"圧縮ツールが内部で行う処理は大きく二種類に分かれる。",[278,306,308],{"id":307},"画像リサンプリング再エンコード方式","画像リサンプリング・再エンコード方式",[12,310,311],{},"既存の埋め込み画像を取り出し、解像度を下げる（ダウンサンプリング）か、品質を下げて JPEG 再エンコードして書き戻す手法。スキャン PDF に対して最も効果が高い。ツールによっては元の PDF 構造を維持したままリソースだけ差し替える実装もある。",[278,313,314],{"id":314},"ページラスタライズ再構築方式",[12,316,317],{},"すべてのページをいったんキャンバスに描画して画像化し、その画像を新しい PDF に貼り直す手法。元の PDF 構造（テキストレイヤー・しおり・注釈など）は失われる代わりに、削減率が高くなりやすい。ブラウザ完結型の実装に向いている。zerosend が採用しているのがこの方式だ。",[12,319,320,321,324],{},"どちらの方式も",[34,322,323],{},"ベクタ主体のテキスト PDF に対する効果は限定的","であることは共通している。テキスト PDF のサイズを大幅に削減したいなら、フォントのサブセット化や不要なメタデータ削除のアプローチが適切だが、これらはより専門的な処理になる。",[268,326],{},[24,328,330],{"id":329},"主要ツール比較送信先サーバーと機能の違い","主要ツール比較：送信先サーバーと機能の違い",[12,332,333],{},"同種のサービスと zerosend を並べて比較する。",[335,336,337,361],"table",{},[338,339,340],"thead",{},[341,342,343,346,349,352,355,358],"tr",{},[344,345,243],"th",{},[344,347,348],{},"送信先サーバー",[344,350,351],{},"処理場所",[344,353,354],{},"無料枠の制限",[344,356,357],{},"テキスト検索保持",[344,359,360],{},"オフライン動作",[362,363,364,385,401,419,434],"tbody",{},[341,365,366,370,373,376,379,382],{},[367,368,369],"td",{},"Smallpdf",[367,371,372],{},"あり（同社サーバー）",[367,374,375],{},"クラウド",[367,377,378],{},"1日2ファイル",[367,380,381],{},"方式により異なる",[367,383,384],{},"不可",[341,386,387,390,392,394,397,399],{},[367,388,389],{},"iLovePDF",[367,391,372],{},[367,393,375],{},[367,395,396],{},"ファイルサイズ制限あり",[367,398,381],{},[367,400,384],{},[341,402,403,406,409,411,414,417],{},[367,404,405],{},"Adobe Acrobat オンライン",[367,407,408],{},"あり（Adobe サーバー）",[367,410,375],{},[367,412,413],{},"月2回まで",[367,415,416],{},"保持される場合あり",[367,418,384],{},[341,420,421,424,426,428,430,432],{},[367,422,423],{},"PDF2Go",[367,425,372],{},[367,427,375],{},[367,429,396],{},[367,431,381],{},[367,433,384],{},[341,435,436,441,446,451,456,461],{},[367,437,438],{},[34,439,440],{},"zerosend",[367,442,443],{},[34,444,445],{},"なし（ゼロ）",[367,447,448],{},[34,449,450],{},"ブラウザ内",[367,452,453],{},[34,454,455],{},"制限なし",[367,457,458],{},[34,459,460],{},"失われる（ラスタライズ）",[367,462,463],{},[34,464,465],{},"可（SW キャッシュ）",[12,467,468],{},"Smallpdf や iLovePDF はクラウド処理ゆえに安定した圧縮品質を提供しており、テキスト検索を保持する圧縮モードも持つ。zerosend はサーバー送信ゼロと制限なし無料というトレードオフで、テキスト検索性を犠牲にする点は正直に記載しておく。",[268,470],{},[24,472,474],{"id":473},"zerosend-でブラウザ内圧縮を行う手順","zerosend でブラウザ内圧縮を行う手順",[12,476,477,479],{},[18,478,265],{"href":199}," を使う手順は次の通りだ。",[278,481,483],{"id":482},"_1-ツールを開く","1. ツールを開く",[12,485,486,489],{},[87,487,488],{},"https:\u002F\u002Fzerosend.site\u002Ftools\u002Fpdf-compress"," にアクセスする。初回はライブラリのロードに数秒かかる場合がある。一度ロードが完了すれば、Service Worker によってキャッシュされるため、次回以降はオフライン環境でも動作する。",[278,491,493],{"id":492},"_2-pdf-を投入する","2. PDF を投入する",[12,495,496],{},"ドラッグ＆ドロップ、またはクリックしてファイル選択ダイアログから PDF を選ぶ。パスワード保護された PDF は処理できないため、事前にロック解除が必要だ。",[278,498,500],{"id":499},"_3-品質レベルを選択する","3. 品質レベルを選択する",[12,502,503],{},"三段階の品質設定がある。",[28,505,506,512,518],{},[31,507,508,511],{},[34,509,510],{},"高品質","：解像度を比較的維持し、読みやすさ優先。削減率は控えめ（スキャン PDF で 20〜40% 程度）",[31,513,514,517],{},[34,515,516],{},"標準","：バランス型。ほとんどのユースケースに適する（スキャン PDF で 40〜65% 程度）",[31,519,520,523],{},[34,521,522],{},"低品質","：最大圧縮。画質は落ちるが軽量化率が高い（スキャン PDF で 60〜80% 程度）",[12,525,526],{},"テキスト主体の PDF は設定にかかわらず削減率が低い（10〜25% 程度）。",[278,528,530],{"id":529},"_4-圧縮を実行してダウンロードする","4. 圧縮を実行してダウンロードする",[12,532,533],{},"「圧縮を開始する」ボタンを押すと、ブラウザ内で処理が走る。完了後にダウンロードリンクが表示される。処理中にページを離れても問題ないが、ブラウザタブを閉じると処理が中断される。",[268,535],{},[24,537,539],{"id":538},"内部の仕組みライブラリと処理フロー","内部の仕組み：ライブラリと処理フロー",[12,541,542],{},"zerosend の PDF 圧縮は以下のライブラリを組み合わせて実装されている。",[80,544,545,558,574],{},[31,546,547,550,551,557],{},[34,548,549],{},"pdfjs-dist","（Mozilla 製の PDF レンダリングライブラリ）：元の PDF ファイルを読み込み、各ページを Canvas に描画する。これが「ラスタライズ」の工程だ。pdfjs-dist の仕様については ",[18,552,556],{"href":553,"rel":554},"https:\u002F\u002Fgithub.com\u002Fmozilla\u002Fpdf.js",[555],"nofollow","公式 GitHub リポジトリ"," を参照できる。",[31,559,560,563,564,567,568,573],{},[34,561,562],{},"Canvas API","：描画されたページを ",[87,565,566],{},"canvas.toDataURL('image\u002Fjpeg', quality)"," で指定品質の JPEG に変換する。品質パラメータ（0〜1）が品質レベル選択に対応している。Canvas API の仕様は ",[18,569,572],{"href":570,"rel":571},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fja\u002Fdocs\u002FWeb\u002FAPI\u002FCanvas_API",[555],"MDN Web Docs"," で確認できる。",[31,575,576,578],{},[34,577,112],{},"：JPEG に変換されたページを新しい PDF ドキュメントに埋め込み直す。元 PDF のタイトル・作成者などのメタデータを引き継いで最終的な PDF を組み立てる。",[12,580,581],{},"処理はすべてブラウザのメインスレッドまたは Web Worker 上で行われる。ネットワーク通信は発生しない。DevTools の「Network」タブを開いた状態で圧縮を実行すると、処理中に外部への HTTP リクエストが発生していないことを自分の目で確認できる。",[268,583],{},[24,585,586],{"id":586},"注意すべき落とし穴",[12,588,589],{},"zerosend の PDF 圧縮ツールを使う前に把握しておくべき制限と注意点を整理する。",[278,591,593],{"id":592},"テキスト検索コピーが不可になる","テキスト検索・コピーが不可になる",[12,595,596],{},"ラスタライズ方式のため、圧縮後の PDF はすべてのページが画像になる。Adobe Acrobat や PDF ビューアでテキスト検索（Ctrl+F）を実行しても文字がヒットしない。テキスト選択・コピーも不可になる。契約書の条文を検索したい、コピーして引用したいといった用途には向かない。",[278,598,600],{"id":599},"しおり注釈ハイパーリンクが失われる","しおり・注釈・ハイパーリンクが失われる",[12,602,603],{},"元の PDF に含まれていたしおり（ブックマーク）・注釈・クリッカブルなリンクは、ラスタライズの過程で消える。ページ数の多いマニュアル PDF でナビゲーション構造を維持したい場合は別の方法を検討すること。",[278,605,607],{"id":606},"ベクタ主体の-pdf-には効果が薄い","ベクタ主体の PDF には効果が薄い",[12,609,610],{},"Word や LaTeX からエクスポートしたテキスト PDF は、もともとのサイズが小さく、ラスタライズしても大きな削減にならない場合がある。むしろファイルサイズが増えることもある。",[278,612,613],{"id":613},"大容量ファイルはブラウザのメモリを消費する",[12,615,616,617,621],{},"100MB を超えるような大型 PDF を処理すると、ブラウザのタブが大量のメモリを消費する。タブがクラッシュする場合は、先に ",[18,618,620],{"href":619},"\u002Ftools\u002Fpdf-split","PDF 分割ツール"," でページ数を減らしてから圧縮を試みるとよい。",[268,623],{},[24,625,627],{"id":626},"faqよくある疑問","FAQ：よくある疑問",[278,629,631],{"id":630},"削減率はどのくらい期待できるか","削減率はどのくらい期待できるか？",[12,633,634],{},"スキャン由来の画像 PDF で標準品質を選んだ場合、50〜65% 削減されるケースが多い。ただし元 PDF の解像度・埋め込み形式・ページ数によって大きく変わる。ベクタ主体のテキスト PDF では 10〜20% 程度にとどまることが多い。",[278,636,637],{"id":637},"圧縮後に画質が荒くなった",[12,639,640],{},"「低品質」設定で圧縮すると、特に細かいテキストや図表が読みにくくなる場合がある。「標準」または「高品質」に切り替えて再試行してほしい。印刷用途なら高品質推奨、メール添付程度なら標準で十分なケースが多い。",[278,642,644],{"id":643},"ocr-機能はあるか","OCR 機能はあるか？",[12,646,647],{},"ない。zerosend の PDF 圧縮ツールはラスタライズして再構築するだけで、文字認識（OCR）は行わない。圧縮後の PDF に OCR をかけたい場合は、別途 OCR ツール（Adobe Acrobat、Google Drive の「テキストに変換」機能など）を使う必要がある。",[278,649,651],{"id":650},"パスワード付き-pdf-はどうすればよいか","パスワード付き PDF はどうすればよいか？",[12,653,654],{},"パスワード保護された PDF は処理できない。事前に PDF のパスワードを解除してから投入すること。",[278,656,658],{"id":657},"複数ファイルをまとめて処理できるか","複数ファイルをまとめて処理できるか？",[12,660,661,662,665],{},"現時点では 1 ファイルずつの処理となる。複数の PDF を一括で圧縮したい場合は繰り返し実行するか、先に ",[18,663,664],{"href":206},"PDF 結合ツール"," で結合してから一括圧縮する方法も取れる。",[268,667],{},[24,669,670],{"id":670},"まとめ",[12,672,673],{},"PDF 圧縮の手段を選ぶ際の判断軸は「プライバシーリスクを受け入れられるか」と「テキスト検索性を維持する必要があるか」の二点に集約される。",[12,675,676],{},"Smallpdf や iLovePDF はテキスト検索を保持しながら高品質な圧縮を提供しており、機密性の低い PDF であればこれらを使う合理性は十分にある。一方、契約書・給与明細・医療文書のように社外サーバーに送りたくない PDF については、zerosend のブラウザ完結型が現実的な選択肢になる。",[12,678,679],{},"zerosend が採用するラスタライズ方式はテキスト検索性を失うという明確なトレードオフを持つ。これを理解したうえで用途と合致するなら、サーバー送信ゼロ・無料・オフライン動作という実用上のメリットは大きい。",[28,681,682,685,688,695],{},[31,683,684],{},"画像主体のスキャン PDF を軽くしたい → zerosend が向いている",[31,686,687],{},"テキスト検索性を保持したい → Smallpdf 等のクラウドサービスを検討する",[31,689,690,691,694],{},"ページを絞ってサイズを減らしたい → ",[18,692,693],{"href":619},"PDF 分割"," で必要ページだけ抽出する",[31,696,697,698,700],{},"複数 PDF をまとめてから圧縮したい → ",[18,699,207],{"href":206}," と組み合わせる",{"title":217,"searchDepth":218,"depth":218,"links":702},[703,709,713,714,720,721,727,734],{"id":272,"depth":218,"text":273,"children":704},[705,707,708],{"id":280,"depth":706,"text":280},3,{"id":286,"depth":706,"text":286},{"id":292,"depth":706,"text":292},{"id":300,"depth":218,"text":301,"children":710},[711,712],{"id":307,"depth":706,"text":308},{"id":314,"depth":706,"text":314},{"id":329,"depth":218,"text":330},{"id":473,"depth":218,"text":474,"children":715},[716,717,718,719],{"id":482,"depth":706,"text":483},{"id":492,"depth":706,"text":493},{"id":499,"depth":706,"text":500},{"id":529,"depth":706,"text":530},{"id":538,"depth":218,"text":539},{"id":586,"depth":218,"text":586,"children":722},[723,724,725,726],{"id":592,"depth":706,"text":593},{"id":599,"depth":706,"text":600},{"id":606,"depth":706,"text":607},{"id":613,"depth":706,"text":613},{"id":626,"depth":218,"text":627,"children":728},[729,730,731,732,733],{"id":630,"depth":706,"text":631},{"id":637,"depth":706,"text":637},{"id":643,"depth":706,"text":644},{"id":650,"depth":706,"text":651},{"id":657,"depth":706,"text":658},{"id":670,"depth":218,"text":670},"PDF をサーバーに送らずブラウザ内で圧縮する方法を解説。zerosend の仕組み・削減率・競合比較・注意点まで網羅。",{},"\u002Fblog\u002Fpdf-compress-intro",{"title":247,"description":735},"pdf-compress-intro","blog\u002Fpdf-compress-intro",[240,742,243],"圧縮","2026-05-15","iUXvX2xAyMF5RiU6TEM9slF-ZVrHX2-S9qGNKN5liyk",{"id":746,"title":747,"author":7,"body":748,"category":226,"coverImage":227,"description":1055,"draft":229,"extension":230,"locale":231,"meta":1056,"navigation":233,"noindex":233,"path":1057,"publishedAt":235,"seo":1058,"slug":1059,"stem":1060,"tags":1061,"updatedAt":235,"__hash__":1063},"blog\u002Fblog\u002Fpdf-edit-intro.md","PDF のページを並べ替え・削除・回転 — \u002Ftools\u002Fpdf-edit の思想と使い方",{"type":9,"value":749,"toc":1045},[750,753,760,770,773,811,814,821,830,832,872,876,882,888,890,919,928,930,936,942,948,954,960,962,979,983,986,1037],[12,751,752],{},"スキャンしたら逆向きになっていた、最終ページが白紙だから削除したい、契約書の章を入れ替えたい。PDF 編集の 9 割は「ページの並べ替え・削除・回転」で済みます。",[12,754,755,759],{},[18,756,758],{"href":757},"\u002Ftools\u002Fpdf-edit","Zerosend の PDF ページ編集ツール"," は、この基本 3 操作をブラウザ内で完結させます。アップロード不要・無料・登録不要で、機密文書もそのまま投入できます。",[12,761,762,763,765,766,769],{},"編集後にサイズを軽くしたいなら ",[18,764,200],{"href":199},"、ページを画像として書き出したいなら ",[18,767,768],{"href":213},"PDF → 画像変換"," との組み合わせが便利です。",[24,771,772],{"id":772},"こんな場面で使える",[28,774,775,781,787,793,799,805],{},[31,776,777,780],{},[34,778,779],{},"スキャン結果の向き修正",": スキャナが横向きで読み込んだページを 90° 回転して正しい向きに",[31,782,783,786],{},[34,784,785],{},"白紙ページの削除",": スキャン時に混入した白紙ページや意図しない空白ページをまとめて削除",[31,788,789,792],{},[34,790,791],{},"報告書の章順修正",": 後から追加した付録を適切な位置に移動。ドラッグ操作でページを並べ直す",[31,794,795,798],{},[34,796,797],{},"配布用 PDF の整形",": 社内向けの全ページを含む PDF から、共有しても問題ないページだけを残す",[31,800,801,804],{},[34,802,803],{},"製本・印刷準備",": 両面印刷や製本に合わせてページ順を並べ替える",[31,806,807,810],{},[34,808,809],{},"プレゼン資料の調整",": 不要なスライドを削除して提出用スリム版を作成",[24,812,813],{"id":813},"なぜブラウザ内で編集するのか",[12,815,816,817,820],{},"PDF 編集の対象は、ほぼ例外なく機密文書です。業務委託契約、秘密保持契約、顧客カルテ、社内規程、給与明細。これらを「ページを入れ替えるだけ」のオンラインサービスに預けると、",[34,818,819],{},"元の全ページが相手のサーバーに渡ります","。",[12,822,823,824,826,827,829],{},"「処理後にすぐ削除」と書かれていても、保存の痕跡や解析ログをユーザーが検証する手段はありません。Zerosend ではページ編集もローカル処理のため、この透明性の問題を構造的に回避できます。複数 PDF を 1 つにまとめてから編集したい場合は ",[18,825,207],{"href":206},"、編集後にページを抜き出したい場合は ",[18,828,693],{"href":619}," も同じ方式で動きます。",[24,831,78],{"id":78},[80,833,834,840,843,846,869],{},[31,835,836,89],{},[18,837,838],{"href":757},[87,839,757],{},[31,841,842],{},"PDF をドラッグ&ドロップ",[31,844,845],{},"ページサムネイル一覧が表示される",[31,847,848,849],{},"操作:\n",[28,850,851,857,863],{},[31,852,853,856],{},[34,854,855],{},"並べ替え",": ドラッグでページを入れ替え",[31,858,859,862],{},[34,860,861],{},"削除",": 不要なページのゴミ箱アイコンをクリック",[31,864,865,868],{},[34,866,867],{},"回転",": 各ページの回転アイコンで 90° 単位回転",[31,870,871],{},"「編集を完了する」をクリックして新しい PDF を出力",[24,873,875],{"id":874},"pdf-lib-によるブラウザ内-pdf-処理","pdf-lib によるブラウザ内 PDF 処理",[12,877,878,879,881],{},"Zerosend の PDF ページ編集は ",[34,880,112],{}," というオープンソースライブラリで実装しています。pdf-lib はブラウザ上で PDF の読み込み・書き出しができる純粋な JavaScript ライブラリで、サーバーサイドの処理は一切不要です。",[12,883,884,885,887],{},"サムネイル表示には ",[34,886,549],{}," (PDF.js) を使い、各ページを Canvas に描画。並べ替え・削除・回転の操作を UI 上で決めてから、最後に pdf-lib で新しい PDF として書き出します。契約書や機密文書も、データが端末から出ることなく安全に編集できます。",[24,889,107],{"id":107},[28,891,892,898,901,907,914],{},[31,893,894,895,897],{},"PDF を ",[87,896,549],{}," でレンダリングしてサムネイル一覧を表示",[31,899,900],{},"ページの並び・削除・回転情報を UI 上で管理",[31,902,903,904,906],{},"「完了」操作時に ",[87,905,112],{}," を呼び出し、元 PDF から必要なページを順にコピー",[31,908,909,910,913],{},"回転は ",[87,911,912],{},"page.setRotation()"," で書き込み",[31,915,916,917],{},"最終 PDF として ",[87,918,143],{},[12,920,921,922,924,925,927],{},"サムネ描画 (",[87,923,549],{},") と PDF 組み立て (",[87,926,112],{},") の 2 ライブラリで役割分担しています。",[24,929,150],{"id":150},[12,931,932,935],{},[34,933,934],{},"Q. テキストの編集はできますか？","\nA. 本ツールはページ単位の操作 (並べ替え・削除・回転) に特化しています。文章の書き換えや署名追加、注釈入力には対応していません。",[12,937,938,941],{},[34,939,940],{},"Q. パスワード付き PDF は使えますか？","\nA. パスワードで保護された PDF の編集には対応していません。事前にパスワードを解除してください。",[12,943,944,947],{},[34,945,946],{},"Q. 編集履歴は残りますか？","\nA. 新しい PDF として書き出すため、元ファイルは変更されません。必要なら元ファイルを別途保存しておいてください。",[12,949,950,953],{},[34,951,952],{},"Q. ページを複製 (同じページを 2 回入れる) できますか？","\nA. 現状は非対応です。需要があれば追加します。",[12,955,956,959],{},[34,957,958],{},"Q. 回転の粒度は？","\nA. 90° 単位のみです。PDF の仕様上、自由角度回転は本来のページ情報を損ねる可能性があるため非対応です。",[24,961,187],{"id":187},[28,963,964,969,974],{},[31,965,966,968],{},[18,967,693],{"href":619}," — 編集ではなく切り分けたいとき",[31,970,971,973],{},[18,972,207],{"href":206}," — 複数 PDF を結合",[31,975,976,978],{},[18,977,200],{"href":199}," — 編集後のサイズ削減",[24,980,982],{"id":981},"pdf-系ツール一覧","PDF 系ツール一覧",[12,984,985],{},"PDF をブラウザだけで処理する Zerosend のツール群です。すべてアップロード不要・無料で使えます。",[28,987,988,997,1005,1013,1021,1029],{},[31,989,990,996],{},[18,991,992,993,995],{"href":206},"PDF 結合 (",[87,994,206],{},")"," — 複数の PDF を 1 ファイルにまとめる",[31,998,999,1004],{},[18,1000,1001,1002,995],{"href":619},"PDF 分割 (",[87,1003,619],{}," — ページ範囲指定で分割",[31,1006,1007,1012],{},[18,1008,1009,1010,995],{"href":199},"PDF 圧縮 (",[87,1011,199],{}," — ページをラスタライズしてサイズ削減",[31,1014,1015,1020],{},[18,1016,1017,1018,995],{"href":757},"PDF ページ編集 (",[87,1019,757],{}," — 本記事のツール",[31,1022,1023,1028],{},[18,1024,1025,1026,995],{"href":213},"PDF → 画像 (",[87,1027,213],{}," — PDF を PNG \u002F JPG 画像として書き出す",[31,1030,1031,1036],{},[18,1032,1033,1034,995],{"href":20},"画像 → PDF (",[87,1035,20],{}," — 複数画像を PDF にまとめる",[12,1038,1039,1040,1044],{},"PDF 関連の他の記事は ",[18,1041,1043],{"href":1042},"\u002Fblog\u002Ftag\u002Fpdf","タグ: PDF"," からまとめて見られます。",{"title":217,"searchDepth":218,"depth":218,"links":1046},[1047,1048,1049,1050,1051,1052,1053,1054],{"id":772,"depth":218,"text":772},{"id":813,"depth":218,"text":813},{"id":78,"depth":218,"text":78},{"id":874,"depth":218,"text":875},{"id":107,"depth":218,"text":107},{"id":150,"depth":218,"text":150},{"id":187,"depth":218,"text":187},{"id":981,"depth":218,"text":982},"Zerosend の PDF ページ編集ツールは、PDF のページ順序変更・削除・回転をサーバーに送らず端末内で行います。スキャン時の向きミス修正や不要ページ削除に。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-edit-intro",{"title":747,"description":1055},"pdf-edit-intro","blog\u002Fpdf-edit-intro",[240,1062,243],"編集","McRq6NYTMv81LiqIPeiqIgJ_4bPen-vd-WRH3bESikc",{"id":1065,"title":1066,"author":7,"body":1067,"category":226,"coverImage":227,"description":1250,"draft":229,"extension":230,"locale":231,"meta":1251,"navigation":233,"noindex":233,"path":1252,"publishedAt":235,"seo":1253,"slug":1254,"stem":1255,"tags":1256,"updatedAt":235,"__hash__":1258},"blog\u002Fblog\u002Fpdf-split-intro.md","PDF を分割する — \u002Ftools\u002Fpdf-split の思想と使い方",{"type":9,"value":1068,"toc":1242},[1069,1072,1077,1081,1087,1090,1093,1095,1133,1137,1143,1145,1150,1179,1182,1184,1190,1196,1202,1208,1222,1224],[12,1070,1071],{},"契約書の 2〜5 ページだけ取引先に送りたい、100 ページの報告書を章ごとに分けて関係者に配りたい、スキャン時に 1 ファイルにまとめてしまった複数書類を切り分けたい。PDF の分割は業務で頻繁に発生するにもかかわらず、一般的なツールが少ない作業です。",[12,1073,1074,22],{},[18,1075,1076],{"href":619},"Zerosend の PDF 分割ツール",[24,1078,1080],{"id":1079},"なぜブラウザ内で-pdf-を分割するのか","なぜブラウザ内で PDF を分割するのか",[12,1082,1083,1084,820],{},"PDF の中身は、契約書・見積書・健康診断結果・給与明細・設計資料など、ほぼすべてが機密性を持ちます。これを「PDF 分割できるオンラインサービス」にアップロードすると、",[34,1085,1086],{},"元の全ページが一旦そのサービスのサーバーに渡ります",[12,1088,1089],{},"ユーザー側が「2〜5 ページだけ必要」と思っていても、サービス側は全ページにアクセスできます。無料で提供されている以上、何らかの対価 (ログ・解析・AI 学習素材) としてファイルが使われている可能性は否定できません。",[12,1091,1092],{},"Zerosend は分割処理そのものがローカルで動くため、この構造的な問題を回避できます。",[24,1094,78],{"id":78},[80,1096,1097,1103,1106,1127,1130],{},[31,1098,1099,89],{},[18,1100,1101],{"href":619},[87,1102,619],{},[31,1104,1105],{},"PDF ファイルをドラッグ&ドロップ",[31,1107,1108,1109],{},"分割方法を選ぶ:\n",[28,1110,1111,1117],{},[31,1112,1113,1116],{},[34,1114,1115],{},"全ページを 1 ページずつ分割"," — 100 ページなら 100 ファイル",[31,1118,1119,1122,1123,1126],{},[34,1120,1121],{},"範囲指定"," — 例: ",[87,1124,1125],{},"1-3, 5, 7-10"," で複数範囲を抽出",[31,1128,1129],{},"「分割を開始する」をクリック",[31,1131,1132],{},"結果を ZIP でダウンロード",[24,1134,1136],{"id":1135},"pdf-lib-によるブラウザ内処理","pdf-lib によるブラウザ内処理",[12,1138,1139,1140,1142],{},"本ツールは ",[34,1141,112],{}," というブラウザで完全動作する PDF 編集ライブラリを使っています。pdf-lib はサーバーへの問い合わせなしに PDF の読み込み・生成・ページ操作を行える純粋な JavaScript ライブラリです。元の PDF ファイルは変更されず、指定したページのみを新しい PDF として書き出します。",[24,1144,107],{"id":107},[12,1146,1147,1149],{},[87,1148,112],{}," というブラウザで動く PDF 編集ライブラリを使っています。",[28,1151,1152,1155,1161,1168,1174],{},[31,1153,1154],{},"入力 PDF を ArrayBuffer として読み込み",[31,1156,1157,1160],{},[87,1158,1159],{},"PDFDocument.load()"," で解析",[31,1162,1163,1164,1167],{},"範囲指定に応じた新しい ",[87,1165,1166],{},"PDFDocument"," を作成",[31,1169,1170,1173],{},[87,1171,1172],{},"copyPages()"," で必要なページだけコピー",[31,1175,1176,1178],{},[87,1177,143],{}," で新しい PDF バイト列を生成",[12,1180,1181],{},"すべてメモリ上で処理し、ネットワークには一切送りません。",[24,1183,150],{"id":150},[12,1185,1186,1189],{},[34,1187,1188],{},"Q. 1 ページずつ個別のファイルに分割できますか？","\nA. できます。「全ページを 1 ページずつ分割」を選ぶと、100 ページなら 100 ファイルが生成されて ZIP でまとめてダウンロードできます。",[12,1191,1192,1195],{},[34,1193,1194],{},"Q. 元の PDF ファイルは変更されますか？","\nA. 変更されません。ブラウザのメモリ上で新しい PDF を生成するだけで、元ファイルへの書き込みは一切行いません。",[12,1197,1198,1201],{},[34,1199,1200],{},"Q. 暗号化された PDF (パスワード保護) も分割できる？","\nA. パスワードなしの PDF のみ対応。暗号化 PDF は先にロック解除が必要です。",[12,1203,1204,1207],{},[34,1205,1206],{},"Q. ページ数が非常に多い PDF (500 ページなど) は？","\nA. 処理はできますが、ブラウザのメモリ次第で時間がかかります。数百 MB 規模の PDF は端末スペック次第で詰まることがあります。",[12,1209,1210,1213,1214,1217,1218,1221],{},[34,1211,1212],{},"Q. 分割後のファイル名は？","\nA. 元ファイル名に ",[87,1215,1216],{},"-p1",", ",[87,1219,1220],{},"-p2-5"," のようなサフィックスを付けます。",[24,1223,187],{"id":187},[28,1225,1226,1231,1237],{},[31,1227,1228,1230],{},[18,1229,207],{"href":206}," — 分割とは逆に、複数 PDF を 1 つに",[31,1232,1233,1236],{},[18,1234,1235],{"href":757},"PDF ページ編集"," — ページの並べ替え・削除・回転",[31,1238,1239,1241],{},[18,1240,200],{"href":199}," — 分割後のファイルを軽くする",{"title":217,"searchDepth":218,"depth":218,"links":1243},[1244,1245,1246,1247,1248,1249],{"id":1079,"depth":218,"text":1080},{"id":78,"depth":218,"text":78},{"id":1135,"depth":218,"text":1136},{"id":107,"depth":218,"text":107},{"id":150,"depth":218,"text":150},{"id":187,"depth":218,"text":187},"Zerosend の PDF 分割ツールは、PDF をサーバーに送らずブラウザ内でページ単位\u002F範囲指定で分割します。機密文書の特定ページだけ共有したいときに。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-split-intro",{"title":1066,"description":1250},"pdf-split-intro","blog\u002Fpdf-split-intro",[240,1257,243],"分割","OZsNQlbXlAmi4V_YHwxSw61IZ8Jv3xYRXT9nG-S79jA",{"id":1260,"title":1261,"author":7,"body":1262,"category":226,"coverImage":227,"description":1478,"draft":229,"extension":230,"locale":231,"meta":1479,"navigation":233,"noindex":233,"path":1480,"publishedAt":235,"seo":1481,"slug":1482,"stem":1483,"tags":1484,"updatedAt":235,"__hash__":1485},"blog\u002Fblog\u002Fpdf-to-image-intro.md","PDF を画像に変換する — \u002Ftools\u002Fpdf-to-image の思想と使い方",{"type":9,"value":1263,"toc":1468},[1264,1267,1272,1275,1301,1303,1310,1313,1315,1334,1337,1357,1359,1364,1393,1396,1398,1407,1413,1419,1430,1444,1446],[12,1265,1266],{},"プレゼン資料の 1 ページだけスクリーンショット的に使いたい、PDF の一部を SNS 投稿したい、PDF を見れない環境向けに画像で送りたい。「PDF → 画像」の変換は地味に需要があります。",[12,1268,1269,22],{},[18,1270,1271],{"href":213},"Zerosend の PDF → 画像変換ツール",[24,1273,1274],{"id":1274},"どんな場面で役立つか",[28,1276,1277,1283,1289,1295],{},[31,1278,1279,1282],{},[34,1280,1281],{},"SNS・ブログへの資料引用",": 講演スライドや報告書の特定ページを画像として切り出し、X や Instagram にそのまま投稿できます",[31,1284,1285,1288],{},[34,1286,1287],{},"サムネイル作成",": PDF ドキュメントの表紙ページを高解像度 PNG に変換し、ウェブサイトのカバー画像として使えます",[31,1290,1291,1294],{},[34,1292,1293],{},"PDF 非対応の環境に送る",": チャットツールや古い CMS が PDF に対応していなくても、画像なら貼れます",[31,1296,1297,1300],{},[34,1298,1299],{},"PDF の内容をすばやく確認・共有",": 受け取った PDF の一部だけを画像にして、コメント付きで関係者に送る用途にも便利です",[24,1302,61],{"id":61},[12,1304,1305,1306,1309],{},"PDF から画像を切り出したい場面は、社内資料・顧客提案書・設計図・契約書スナップショットなど、機密度が高いケースが多いものです。「PDF の特定ページを画像にしたいだけ」とオンラインツールに上げるときも、",[34,1307,1308],{},"アップロードされるのは PDF の全ページ","です。",[12,1311,1312],{},"Zerosend は変換処理をローカルで行うため、そもそも PDF が外に出ません。",[24,1314,78],{"id":78},[80,1316,1317,1323,1325,1328,1331],{},[31,1318,1319,89],{},[18,1320,1321],{"href":213},[87,1322,213],{},[31,1324,842],{},[31,1326,1327],{},"出力形式 (PNG \u002F JPEG) と解像度を選ぶ",[31,1329,1330],{},"「変換を開始する」をクリック",[31,1332,1333],{},"全ページの画像が ZIP で生成される",[278,1335,1336],{"id":1336},"解像度の目安",[28,1338,1339,1345,1351],{},[31,1340,1341,1344],{},[34,1342,1343],{},"72 DPI",": ウェブ掲載・SNS 投稿用。画質より軽さ優先",[31,1346,1347,1350],{},[34,1348,1349],{},"150 DPI",": 画面で読む標準品質",[31,1352,1353,1356],{},[34,1354,1355],{},"300 DPI",": 印刷品質。資料の細部が重要なとき",[24,1358,107],{"id":107},[12,1360,1361,1363],{},[87,1362,549],{}," を使って各ページを Canvas に描画し、Canvas から画像として書き出しています。",[28,1365,1366,1369,1374,1384,1390],{},[31,1367,1368],{},"PDF を ArrayBuffer として読み込み",[31,1370,1371,1160],{},[87,1372,1373],{},"getDocument()",[31,1375,127,1376,1379,1380,1383],{},[87,1377,1378],{},"getPage(n)"," → ",[87,1381,1382],{},"render(ctx, viewport)"," で Canvas に描画",[31,1385,1386,1389],{},[87,1387,1388],{},"canvas.toBlob()"," で PNG \u002F JPEG 化",[31,1391,1392],{},"全ページを ZIP にまとめてダウンロード",[12,1394,1395],{},"ブラウザの描画エンジンをそのまま使うため、フォント埋め込み・ベクタ図・透過要素も正確に再現されます。",[24,1397,150],{"id":150},[12,1399,1400,1403,1404,1406],{},[34,1401,1402],{},"Q. 特定のページだけ変換できますか？","\nA. 現状は全ページが対象です。特定ページだけなら ",[18,1405,693],{"href":619}," で該当ページだけ抽出してから変換するのが確実です。",[12,1408,1409,1412],{},[34,1410,1411],{},"Q. 透過背景の PDF を変換するとどうなる？","\nA. PNG を選べば透過が保持されます。JPEG は透過非対応のため白背景になります。",[12,1414,1415,1418],{},[34,1416,1417],{},"Q. 画像の品質をもっと上げたい","\nA. 解像度を 300 DPI にすると大きく改善します。ファイルサイズとメモリ消費も大きくなります。",[12,1420,1421,1424,1425,1429],{},[34,1422,1423],{},"Q. 全ページを 1 枚にまとめたい","\nA. 本ツールは 1 ページ 1 ファイルです。まとめたい場合はダウンロード後 ",[18,1426,1428],{"href":1427},"\u002Ftools\u002Fimage-merge","画像結合"," で結合してください。",[12,1431,1432,1435,1436,1439,1440,1443],{},[34,1433,1434],{},"Q. PNG と JPEG どちらを選ぶべきか？","\nA. テキストや図表が多い資料は ",[34,1437,1438],{},"PNG"," が高品質です。写真が多いページや SNS 投稿用に軽さを優先するなら ",[34,1441,1442],{},"JPEG"," が適しています。",[24,1445,187],{"id":187},[28,1447,1448,1453,1458,1463],{},[31,1449,1450,1452],{},[18,1451,693],{"href":619}," — 変換前に必要なページだけ抽出",[31,1454,1455,1457],{},[18,1456,200],{"href":199}," — 先に PDF を軽くしてから変換すると出力もコンパクトに",[31,1459,1460,1462],{},[18,1461,183],{"href":182}," — 変換後の画像サイズをさらに削減",[31,1464,1465,1467],{},[18,1466,1428],{"href":1427}," — 変換した複数ページを 1 枚にまとめる",{"title":217,"searchDepth":218,"depth":218,"links":1469},[1470,1471,1472,1475,1476,1477],{"id":1274,"depth":218,"text":1274},{"id":61,"depth":218,"text":61},{"id":78,"depth":218,"text":78,"children":1473},[1474],{"id":1336,"depth":706,"text":1336},{"id":107,"depth":218,"text":107},{"id":150,"depth":218,"text":150},{"id":187,"depth":218,"text":187},"Zerosend の PDF → 画像変換ツールは、PDF の各ページをサーバーに送らずブラウザ内で PNG \u002F JPEG に書き出します。資料の一部だけ共有したいときに便利。Zerosend 編集部が解説。",{},"\u002Fblog\u002Fpdf-to-image-intro",{"title":1261,"description":1478},"pdf-to-image-intro","blog\u002Fpdf-to-image-intro",[240,241,242,243],"UFFCF6pwSjl3ZMpKI7PTplUK5VFuwNoMIlKK0juOiqw",{"id":1487,"title":1488,"author":7,"body":1489,"category":226,"coverImage":227,"description":2327,"draft":229,"extension":230,"locale":231,"meta":2328,"navigation":233,"noindex":229,"path":2329,"publishedAt":2330,"seo":2331,"slug":2332,"stem":2333,"tags":2334,"updatedAt":743,"__hash__":2337},"blog\u002Fblog\u002Fpdf-merge-guide.md","PDF 結合 無料・アップロードなし — 顧客情報を外部送信せず処理する完全手順 2026",{"type":9,"value":1490,"toc":2290},[1491,1494,1496,1500,1503,1506,1509,1512,1516,1519,1521,1525,1529,1536,1539,1543,1546,1550,1553,1557,1560,1562,1566,1569,1703,1706,1708,1712,1720,1723,1748,1761,1768,1770,1774,1778,1783,1787,1790,1794,1797,1801,1804,1808,1811,1813,1816,1819,1826,1845,1863,1869,1873,1876,1879,1886,1889,1892,1896,1899,1901,1905,1909,1912,1915,1918,1921,1924,1926,1930,1933,2176,2188,2190,2194,2199,2202,2207,2210,2215,2218,2223,2226,2231,2234,2236,2238,2241,2267,2279,2286],[12,1492,1493],{},"複数の PDF を 1 つにまとめたいが、契約書や請求書を見知らぬサーバーに送ることへの抵抗がある。このジレンマは、オンライン PDF 結合ツールを使う際に多くの事業主・担当者が直面する現実的な問題だ。本記事では、PDF 結合ツールの種類と選定基準を整理し、ファイルを外部送信せずに処理する具体的な手順と、実務で起きやすいトラブルへの対処を体系的に解説する。",[268,1495],{},[24,1497,1499],{"id":1498},"pdf-結合が業務で必要になる典型シーン","PDF 結合が業務で必要になる典型シーン",[278,1501,1502],{"id":1502},"請求書の月次まとめ",[12,1504,1505],{},"取引先ごとに発行された請求書 PDF を、月末に 1 本にまとめて経理へ回す。個人事業主から中小企業の経理担当まで、毎月繰り返す定番作業だ。",[278,1507,1508],{"id":1508},"複数ファイルで届いた契約書の統合",[12,1510,1511],{},"「表紙」「本文」「別紙」「押印欄」が別々の PDF で届くケースは少なくない。署名前に 1 本へまとめておくと、先方への送付もアーカイブもシンプルになる。",[278,1513,1515],{"id":1514},"スキャン-pdf-と添付資料の一体化","スキャン PDF と添付資料の一体化",[12,1517,1518],{},"紙書類のスキャン PDF に、別途作成した Excel や Word の PDF 出力を結合して提出するパターン。士業・官公庁関連の手続きで頻出する。",[268,1520],{},[24,1522,1524],{"id":1523},"ツール選びで見るべき-4-つの判断基準","ツール選びで見るべき 4 つの判断基準",[278,1526,1528],{"id":1527},"_1-ファイルがサーバーへ送られるか","1. ファイルがサーバーへ送られるか",[12,1530,1531,1532,1535],{},"オンライン PDF 結合ツールの大多数は、ファイルを一度サーバーへアップロードしてから処理する。処理後に削除するとアナウンスしているサービスは多いが、",[34,1533,1534],{},"NDA 下の契約書や個人情報を含む書類を外部送信すること自体","が社内規程や法的義務に抵触する場面がある。",[12,1537,1538],{},"判定方法は単純で、ブラウザの DevTools（F12）→ Network タブを開いた状態でファイルを読み込み、PDF データを含む POST 通信が発生しているかを目視確認するだけだ。",[278,1540,1542],{"id":1541},"_2-結合順の制御精度","2. 結合順の制御精度",[12,1544,1545],{},"ドラッグ&ドロップで任意並び替えができるか、ファイル名の文字列ソートしか受け付けないかは大きな差になる。後述するが、文字列ソートは桁数が揃っていない場合に直感と異なる順序を生む。",[278,1547,1549],{"id":1548},"_3-パスワード付き-pdf-への対応","3. パスワード付き PDF への対応",[12,1551,1552],{},"社内で暗号化された PDF は、結合前にロック解除が必要になる。対応していないツールを使う場合は、事前に Adobe Acrobat 等で解除してから持ち込む。",[278,1554,1556],{"id":1555},"_4-ファイルサイズ枚数の上限","4. ファイルサイズ・枚数の上限",[12,1558,1559],{},"ブラウザ内処理はクライアントの RAM に依存するため、数百 MB 規模の PDF を多数扱う場合に動作が不安定になることがある。用途に合わせて事前に上限を確認しておく。",[268,1561],{},[24,1563,1565],{"id":1564},"主要-pdf-結合ツールの比較","主要 PDF 結合ツールの比較",[12,1567,1568],{},"下表は代表的な PDF 結合ツールを「送信先サーバー」観点で並べたものだ。プライバシー要件が厳しい業務では、この列が選定の第一基準になる。",[335,1570,1571,1591],{},[338,1572,1573],{},[341,1574,1575,1577,1579,1582,1585,1588],{},[344,1576,243],{},[344,1578,348],{},[344,1580,1581],{},"処理方式",[344,1583,1584],{},"無料利用",[344,1586,1587],{},"並び替え",[344,1589,1590],{},"オフライン",[362,1592,1593,1612,1626,1641,1657,1675],{},[341,1594,1595,1597,1600,1603,1606,1609],{},[367,1596,369],{},[367,1598,1599],{},"外部クラウド (EU)",[367,1601,1602],{},"サーバーサイド",[367,1604,1605],{},"制限あり",[367,1607,1608],{},"○",[367,1610,1611],{},"✗",[341,1613,1614,1616,1618,1620,1622,1624],{},[367,1615,389],{},[367,1617,1599],{},[367,1619,1602],{},[367,1621,1605],{},[367,1623,1608],{},[367,1625,1611],{},[341,1627,1628,1630,1633,1635,1637,1639],{},[367,1629,405],{},[367,1631,1632],{},"Adobe クラウド",[367,1634,1602],{},[367,1636,1605],{},[367,1638,1608],{},[367,1640,1611],{},[341,1642,1643,1646,1649,1651,1653,1655],{},[367,1644,1645],{},"PDF24 (Web版)",[367,1647,1648],{},"外部クラウド (DE)",[367,1650,1602],{},[367,1652,1608],{},[367,1654,1608],{},[367,1656,1611],{},[341,1658,1659,1662,1665,1668,1671,1673],{},[367,1660,1661],{},"Adobe Acrobat デスクトップ",[367,1663,1664],{},"なし (ローカル)",[367,1666,1667],{},"ローカル",[367,1669,1670],{},"✗ (有償)",[367,1672,1608],{},[367,1674,1608],{},[341,1676,1677,1681,1686,1691,1695,1699],{},[367,1678,1679],{},[34,1680,440],{},[367,1682,1683],{},[34,1684,1685],{},"なし (ブラウザ内)",[367,1687,1688],{},[34,1689,1690],{},"WASM \u002F Web Worker",[367,1692,1693],{},[34,1694,1608],{},[367,1696,1697],{},[34,1698,1608],{},[367,1700,1701],{},[34,1702,1608],{},[12,1704,1705],{},"Smallpdf・iLovePDF はヨーロッパのサーバーを利用しており、GDPR 準拠を謳っているが、データが EU 域外の日本の事業者から EU に渡る点に注意が必要だ。Adobe Acrobat デスクトップ版はローカル完結だが有償ライセンスが前提になる。",[268,1707],{},[24,1709,1711],{"id":1710},"zerosend-がブラウザ内で結合を完結させる仕組み","zerosend がブラウザ内で結合を完結させる仕組み",[12,1713,1714,1715,1719],{},"zerosend の PDF 結合は、",[18,1716,112],{"href":1717,"rel":1718},"https:\u002F\u002Fpdf-lib.js.org\u002F",[555],"（MIT ライセンスの JavaScript ライブラリ）をブラウザ上で直接実行することで実現している。",[12,1721,1722],{},"処理の流れは次のとおりだ。",[80,1724,1725,1732,1735,1745],{},[31,1726,1727,1728,1731],{},"ユーザーが選択したファイルは ",[87,1729,1730],{},"File"," API でブラウザのメモリに読み込まれる",[31,1733,1734],{},"pdf-lib が各 PDF のページツリーを解析し、結合済みの PDF Document オブジェクトを生成する",[31,1736,1737,1738,1379,1741,1744],{},"生成されたバイト列は ",[87,1739,1740],{},"Blob",[87,1742,1743],{},"Object URL"," として即座にダウンロードに渡される",[31,1746,1747],{},"処理中も含め、PDF のバイナリデータが外部ネットワークに出ることはない",[12,1749,1750,1751,1756,1757,573],{},"重い処理は Web Worker 上で実行されるため、メインスレッド（UI）がブロックされず、処理中も画面が固まりにくい。pdf-lib の仕様詳細は ",[18,1752,1755],{"href":1753,"rel":1754},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fja\u002Fdocs\u002FWeb\u002FAPI\u002FFile_API",[555],"MDN の File API ドキュメント"," や ",[18,1758,1760],{"href":1717,"rel":1759},[555],"pdf-lib 公式ドキュメント",[12,1762,1763,1764,1767],{},"初回アクセス後は Service Worker がアセットをキャッシュするため、",[34,1765,1766],{},"以降はオフライン環境でも動作する","。インターネット接続のない社内クローズドネットワークや、機内・現場作業でも使えるのはこの設計によるものだ。",[268,1769],{},[24,1771,1773],{"id":1772},"zerosend-で-pdf-を結合する手順具体的操作","zerosend で PDF を結合する手順（具体的操作）",[278,1775,1777],{"id":1776},"ステップ-1-ツールを開く","ステップ 1: ツールを開く",[12,1779,1780,1782],{},[18,1781,206],{"href":206}," にアクセスする。インストール・ログイン・会員登録は不要だ。",[278,1784,1786],{"id":1785},"ステップ-2-ファイルを追加する","ステップ 2: ファイルを追加する",[12,1788,1789],{},"結合したい PDF をドラッグ&ドロップするか、クリックしてファイル選択ダイアログから選ぶ。複数ファイルを一度に追加できる。",[278,1791,1793],{"id":1792},"ステップ-3-並び順を確認調整する","ステップ 3: 並び順を確認・調整する",[12,1795,1796],{},"ファイルリストが表示されるので、ドラッグで希望の順序に並び替える。ファイル名ソートに依存せず、リスト上の位置が結合後のページ順に直結する。",[278,1798,1800],{"id":1799},"ステップ-4-結合を実行する","ステップ 4: 結合を実行する",[12,1802,1803],{},"「結合する」ボタンを押す。処理はブラウザ内で完結し、完了後すぐにダウンロードが始まる。",[278,1805,1807],{"id":1806},"network-タブで送信ゼロを確認する方法","Network タブで送信ゼロを確認する方法",[12,1809,1810],{},"DevTools（Windows: F12 \u002F Mac: Cmd+Option+I）を開き、「Network」タブに切り替えてから結合を実行する。通信ログに PDF バイナリを含む POST リクエストが存在しないことで、外部送信ゼロを自分の目で検証できる。この検証可能性は、第三者監査や社内コンプライアンス説明の際にも有効だ。",[268,1812],{},[24,1814,1815],{"id":1815},"よくあるトラブルと対処法",[278,1817,1818],{"id":1818},"結合順が意図通りにならない",[12,1820,1821,1822,1825],{},"並び順事故の 8 割は",[34,1823,1824],{},"文字列ソートの桁数不一致","が原因だ。",[28,1827,1828,1838],{},[31,1829,1830,1833,1834,1837],{},[87,1831,1832],{},"1.pdf, 2.pdf, 10.pdf, 11.pdf"," を文字列ソートすると ",[87,1835,1836],{},"1 → 10 → 11 → 2"," になる",[31,1839,1840,1841,1844],{},"日本語ファイル名でも同様に ",[87,1842,1843],{},"請求書1 → 請求書10 → 請求書2"," の順になる",[12,1846,1847,1850,1851,1854,1855,1858,1859,1862],{},[34,1848,1849],{},"解決策:"," ファイル名をゼロパディングで揃える。10〜99 件なら 2 桁（",[87,1852,1853],{},"01, 02, …, 10","）、100 件以上なら 3 桁（",[87,1856,1857],{},"001, 002, …, 100","）。日付を先頭に置く場合は ",[87,1860,1861],{},"YYYY-MM-DD"," 形式が文字列ソートと自然に整合する。",[12,1864,1865,1866,820],{},"zerosend では",[34,1867,1868],{},"リスト上で明示的に並び替えるため、ファイル名ソートの罠に依存しない",[278,1870,1872],{"id":1871},"パスワード付き-pdf-が処理できない","パスワード付き PDF が処理できない",[12,1874,1875],{},"現時点の zerosend はパスワード保護された PDF の解除に対応していない。事前に Adobe Acrobat 等でパスワードを解除してから持ち込むか、デスクトップアプリを併用する。",[278,1877,1878],{"id":1878},"結合後のファイルサイズが大きくなった",[12,1880,1881,1882,1885],{},"各 PDF のコンテンツがそのまま積み重なるため、元ファイルの合計よりわずかに大きくなるのは正常な挙動だ。メール添付に収まらないサイズになった場合は、",[18,1883,1884],{"href":199},"PDF 圧縮ツール"," で後処理する。",[278,1887,1888],{"id":1888},"結合後に文字化けが発生した",[12,1890,1891],{},"フォントが埋め込まれていない PDF は、環境によってフォントが代替されて文字化けが起きることがある。PDF 出力元のソフト（Word, Illustrator 等）でフォントを埋め込んで書き出し直すのが根本的な解決策だ。",[278,1893,1895],{"id":1894},"大容量ファイルで処理が重い止まる","大容量ファイルで処理が重い・止まる",[12,1897,1898],{},"ブラウザ内処理はクライアントの RAM を使う。zerosend は 1 ファイル 100 MB を推奨上限としている。それを超える場合は、Adobe Acrobat デスクトップ版や CLI ツール（Ghostscript 等）を検討する。",[268,1900],{},[24,1902,1904],{"id":1903},"b2b-現場での運用ルール","B2B 現場での運用ルール",[278,1906,1908],{"id":1907},"規程に外部-saas-へのアップロード禁止を明文化する","規程に「外部 SaaS へのアップロード禁止」を明文化する",[12,1910,1911],{},"「個人情報・機密情報を含む書類は外部クラウドにアップロードしない」と明文化している組織は増えている。ブラウザ内処理ツールに切り替えることで、この規程との整合が取りやすくなる。Network タブの検証結果をスクリーンショットで保存しておくと、コンプライアンス担当や監査への説明資料として使える。",[278,1913,1914],{"id":1914},"結合後に元ファイルを整理する",[12,1916,1917],{},"結合後も元の分割ファイルが共有フォルダに残ると「どれが最新版か」が不明瞭になる。結合済みファイルを共有ストレージに置き、分割元は個人のアーカイブフォルダへ退避するルールを決めておく。",[278,1919,1920],{"id":1920},"監査ログが必要な環境での選択",[12,1922,1923],{},"「誰が・いつ・どのツールで処理したか」のログを法務・監査から求められるケースでは、外部 SaaS よりローカル完結型のほうがログの出所を自分で管理しやすい。ブラウザ内処理は DevTools で自己検証できるため、外部依存のない証跡として使える。",[268,1925],{},[24,1927,1929],{"id":1928},"開発者向け-スクリプトで-pdf-結合を自動化する","開発者向け: スクリプトで PDF 結合を自動化する",[12,1931,1932],{},"月次の定型結合を自動化するなら、Node.js で pdf-lib を使う方法がある。ファイル順序をコードで明示するため、ファイル名ソートに依存しない安定した処理が可能だ。",[1934,1935,1939],"pre",{"className":1936,"code":1937,"language":1938,"meta":217,"style":217},"language-typescript shiki shiki-themes github-light github-dark","import { PDFDocument } from 'pdf-lib'\nimport { readFileSync, writeFileSync } from 'node:fs'\n\nconst files = ['01_表紙.pdf', '02_本文.pdf', '03_別紙.pdf']  \u002F\u002F 順序を明示\nconst merged = await PDFDocument.create()\n\nfor (const filePath of files) {\n  const src = await PDFDocument.load(readFileSync(filePath))\n  const pages = await merged.copyPages(src, src.getPageIndices())\n  pages.forEach(page => merged.addPage(page))\n}\n\nwriteFileSync('merged_output.pdf', await merged.save())\n","typescript",[87,1940,1941,1961,1973,1978,2014,2037,2042,2062,2089,2116,2142,2148,2153],{"__ignoreMap":217},[1942,1943,1946,1950,1954,1957],"span",{"class":1944,"line":1945},"line",1,[1942,1947,1949],{"class":1948},"szBVR","import",[1942,1951,1953],{"class":1952},"sVt8B"," { PDFDocument } ",[1942,1955,1956],{"class":1948},"from",[1942,1958,1960],{"class":1959},"sZZnC"," 'pdf-lib'\n",[1942,1962,1963,1965,1968,1970],{"class":1944,"line":218},[1942,1964,1949],{"class":1948},[1942,1966,1967],{"class":1952}," { readFileSync, writeFileSync } ",[1942,1969,1956],{"class":1948},[1942,1971,1972],{"class":1959}," 'node:fs'\n",[1942,1974,1975],{"class":1944,"line":706},[1942,1976,1977],{"emptyLinePlaceholder":233},"\n",[1942,1979,1981,1984,1988,1991,1994,1997,1999,2002,2004,2007,2010],{"class":1944,"line":1980},4,[1942,1982,1983],{"class":1948},"const",[1942,1985,1987],{"class":1986},"sj4cs"," files",[1942,1989,1990],{"class":1948}," =",[1942,1992,1993],{"class":1952}," [",[1942,1995,1996],{"class":1959},"'01_表紙.pdf'",[1942,1998,1217],{"class":1952},[1942,2000,2001],{"class":1959},"'02_本文.pdf'",[1942,2003,1217],{"class":1952},[1942,2005,2006],{"class":1959},"'03_別紙.pdf'",[1942,2008,2009],{"class":1952},"]  ",[1942,2011,2013],{"class":2012},"sJ8bj","\u002F\u002F 順序を明示\n",[1942,2015,2017,2019,2022,2024,2027,2030,2034],{"class":1944,"line":2016},5,[1942,2018,1983],{"class":1948},[1942,2020,2021],{"class":1986}," merged",[1942,2023,1990],{"class":1948},[1942,2025,2026],{"class":1948}," await",[1942,2028,2029],{"class":1952}," PDFDocument.",[1942,2031,2033],{"class":2032},"sScJk","create",[1942,2035,2036],{"class":1952},"()\n",[1942,2038,2040],{"class":1944,"line":2039},6,[1942,2041,1977],{"emptyLinePlaceholder":233},[1942,2043,2045,2048,2051,2053,2056,2059],{"class":1944,"line":2044},7,[1942,2046,2047],{"class":1948},"for",[1942,2049,2050],{"class":1952}," (",[1942,2052,1983],{"class":1948},[1942,2054,2055],{"class":1986}," filePath",[1942,2057,2058],{"class":1948}," of",[1942,2060,2061],{"class":1952}," files) {\n",[1942,2063,2065,2068,2071,2073,2075,2077,2080,2083,2086],{"class":1944,"line":2064},8,[1942,2066,2067],{"class":1948},"  const",[1942,2069,2070],{"class":1986}," src",[1942,2072,1990],{"class":1948},[1942,2074,2026],{"class":1948},[1942,2076,2029],{"class":1952},[1942,2078,2079],{"class":2032},"load",[1942,2081,2082],{"class":1952},"(",[1942,2084,2085],{"class":2032},"readFileSync",[1942,2087,2088],{"class":1952},"(filePath))\n",[1942,2090,2092,2094,2097,2099,2101,2104,2107,2110,2113],{"class":1944,"line":2091},9,[1942,2093,2067],{"class":1948},[1942,2095,2096],{"class":1986}," pages",[1942,2098,1990],{"class":1948},[1942,2100,2026],{"class":1948},[1942,2102,2103],{"class":1952}," merged.",[1942,2105,2106],{"class":2032},"copyPages",[1942,2108,2109],{"class":1952},"(src, src.",[1942,2111,2112],{"class":2032},"getPageIndices",[1942,2114,2115],{"class":1952},"())\n",[1942,2117,2119,2122,2125,2127,2131,2134,2136,2139],{"class":1944,"line":2118},10,[1942,2120,2121],{"class":1952},"  pages.",[1942,2123,2124],{"class":2032},"forEach",[1942,2126,2082],{"class":1952},[1942,2128,2130],{"class":2129},"s4XuR","page",[1942,2132,2133],{"class":1948}," =>",[1942,2135,2103],{"class":1952},[1942,2137,2138],{"class":2032},"addPage",[1942,2140,2141],{"class":1952},"(page))\n",[1942,2143,2145],{"class":1944,"line":2144},11,[1942,2146,2147],{"class":1952},"}\n",[1942,2149,2151],{"class":1944,"line":2150},12,[1942,2152,1977],{"emptyLinePlaceholder":233},[1942,2154,2156,2159,2161,2164,2166,2169,2171,2174],{"class":1944,"line":2155},13,[1942,2157,2158],{"class":2032},"writeFileSync",[1942,2160,2082],{"class":1952},[1942,2162,2163],{"class":1959},"'merged_output.pdf'",[1942,2165,1217],{"class":1952},[1942,2167,2168],{"class":1948},"await",[1942,2170,2103],{"class":1952},[1942,2172,2173],{"class":2032},"save",[1942,2175,2115],{"class":1952},[12,2177,2178,2179,2182,2183,2187],{},"配列 ",[87,2180,2181],{},"files"," の順序がそのまま結合後のページ順になる。CI\u002FCD パイプラインに組み込んで、月次レポートの自動生成などに応用できる。pdf-lib の詳しい API は ",[18,2184,2186],{"href":1717,"rel":2185},[555],"公式ドキュメント"," を参照。",[268,2189],{},[24,2191,2193],{"id":2192},"faq","FAQ",[12,2195,2196],{},[34,2197,2198],{},"Q. zerosend で結合したとき、本当にファイルが外部に送られていないか確認できるか？",[12,2200,2201],{},"できる。ブラウザの DevTools（F12）→ Network タブを開いた状態でファイルを追加・結合し、PDF バイナリを含む POST や PUT リクエストが存在しないことを目視で確認できる。処理はすべてブラウザのメモリ内で完結する。",[12,2203,2204],{},[34,2205,2206],{},"Q. 何ファイルまで一度に結合できるか？",[12,2208,2209],{},"公式に上限ファイル数は設けていないが、1 ファイルあたり 100 MB 以内を推奨している。ファイル数が多くなるほどメモリ消費が増えるため、極端に大きなファイルを数十本まとめて処理する場合はデスクトップアプリの併用を検討する。",[12,2211,2212],{},[34,2213,2214],{},"Q. Smallpdf や iLovePDF と比べてどう違うか？",[12,2216,2217],{},"最大の違いは送信先だ。Smallpdf・iLovePDF はファイルをヨーロッパのサーバーへ送信して処理する。機能面では両サービスのほうが豊富なオプション（OCR、変換等）を持つが、機密書類の処理には zerosend のようなブラウザ内完結型が適している。",[12,2219,2220],{},[34,2221,2222],{},"Q. パスワード付き PDF は結合できるか？",[12,2224,2225],{},"現時点では非対応。事前に Adobe Acrobat や PDF パスワード解除ツールでロックを解除してから zerosend に持ち込む必要がある。",[12,2227,2228],{},[34,2229,2230],{},"Q. オフライン環境でも使えるか？",[12,2232,2233],{},"初回アクセス後は Service Worker がアセットをキャッシュするため、インターネット接続なしでも動作する。社内クローズドネットワークや機内など、外部通信が制限された環境でも利用できる。",[268,2235],{},[24,2237,670],{"id":670},[12,2239,2240],{},"PDF 結合の手順そのものはシンプルだが、扱う情報の性質によってツール選定は大きく変わる。主要な判断軸をまとめる。",[28,2242,2243,2249,2255,2261],{},[31,2244,2245,2248],{},[34,2246,2247],{},"外部送信を避けたい場合",": ブラウザ内完結型（zerosend 等）を選ぶ。DevTools で自分で検証できる",[31,2250,2251,2254],{},[34,2252,2253],{},"並び順の精度が必要な場合",": 文字列ソートに依存せず、明示的な並び替えができるツールを使う。zerosend はドラッグ&ドロップで制御できる",[31,2256,2257,2260],{},[34,2258,2259],{},"大量・高頻度の定型処理",": pdf-lib を使った Node.js スクリプトで自動化し、順序をコードで管理する",[31,2262,2263,2266],{},[34,2264,2265],{},"機能の豊富さが最優先で機密性が低い場合",": Smallpdf・iLovePDF・Adobe Acrobat オンラインが選択肢になる",[12,2268,2269,2270,2272,2273,2275,2276,2278],{},"zerosend の PDF 結合ツールは ",[18,2271,206],{"href":206}," から無料で利用できる。関連ツールとして ",[18,2274,200],{"href":199},"・",[18,2277,1235],{"href":757}," も同様にブラウザ内処理で提供している。",[12,2280,2281,2282],{},"関連ガイド: ",[18,2283,2285],{"href":2284},"\u002Fguide\u002Fprivacy-online-tools","プライバシー重視のオンラインツール",[2287,2288,2289],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":217,"searchDepth":218,"depth":218,"links":2291},[2292,2297,2303,2304,2305,2312,2319,2324,2325,2326],{"id":1498,"depth":218,"text":1499,"children":2293},[2294,2295,2296],{"id":1502,"depth":706,"text":1502},{"id":1508,"depth":706,"text":1508},{"id":1514,"depth":706,"text":1515},{"id":1523,"depth":218,"text":1524,"children":2298},[2299,2300,2301,2302],{"id":1527,"depth":706,"text":1528},{"id":1541,"depth":706,"text":1542},{"id":1548,"depth":706,"text":1549},{"id":1555,"depth":706,"text":1556},{"id":1564,"depth":218,"text":1565},{"id":1710,"depth":218,"text":1711},{"id":1772,"depth":218,"text":1773,"children":2306},[2307,2308,2309,2310,2311],{"id":1776,"depth":706,"text":1777},{"id":1785,"depth":706,"text":1786},{"id":1792,"depth":706,"text":1793},{"id":1799,"depth":706,"text":1800},{"id":1806,"depth":706,"text":1807},{"id":1815,"depth":218,"text":1815,"children":2313},[2314,2315,2316,2317,2318],{"id":1818,"depth":706,"text":1818},{"id":1871,"depth":706,"text":1872},{"id":1878,"depth":706,"text":1878},{"id":1888,"depth":706,"text":1888},{"id":1894,"depth":706,"text":1895},{"id":1903,"depth":218,"text":1904,"children":2320},[2321,2322,2323],{"id":1907,"depth":706,"text":1908},{"id":1914,"depth":706,"text":1914},{"id":1920,"depth":706,"text":1920},{"id":1928,"depth":218,"text":1929},{"id":2192,"depth":218,"text":2193},{"id":670,"depth":218,"text":670},"契約書・請求書を外部サーバーに送らず PDF を結合する方法を解説。ブラウザ内完結ツールの仕組み、競合比較、並び順トラブル対処、B2B 運用ルールまで網羅。",{},"\u002Fblog\u002Fpdf-merge-guide","2026-04-19",{"title":1488,"description":2327},"pdf-merge-guide","blog\u002Fpdf-merge-guide",[240,2335,2336],"業務","プライバシー","KvdWSwTrOTqCa33jkEG_CFpq7BUFGWaS-Kl4Lvc7ElA",1781827532800]