Muhammad Arslan
ご相談・ご依頼
プロジェクト一覧に戻る

PDF Toolkit

ファイルが手元のデバイスから外部に出ることのない、PDFの結合、分割、整理、変換、圧縮に対応したブラウザ完結型スイート。

担当役割: Solo full-stack development開発期間: 2025種別: Web app / product

Next.js 16

React 19

Tailwind CSS 4

pdf-lib

PDF.js

Ghostscript (WASM)

dnd-kit

JSZip

3つの合成プロジェクト文書ページを表示するPDF Toolkitオーガナイザー

概要

PDF Toolkitは、iLovePDFなどのツールに対するクライアントサイドからの回答です。ファイルの結合、ページの抽出、並べ替えや回転、画像との相互変換、圧縮など、ユーザーが日常的に必要とするPDF処理に対応し、そのすべてをブラウザ内で行います。アップロードは一切発生しません。マーケティングサイトとツールカタログの背後には、それぞれが独立した機能を持つ一連のライブワークスペースが配置されています。

課題

一般的なオンラインPDFツールはどれも同じ仕組みです。ファイルをサーバーにアップロードし、処理された結果をダウンロードします。簡単な画像変換程度であれば問題ありません。しかし、署名済み契約書、身分証明書スキャン、診療記録、財務諸表などの場合、機密ファイルを第三者に預け、そのデータ保持ポリシーを信用することを意味します。同様の処理を行いながら、すべてのファイルを手元のマシン内にとどめておけるツールには明確な需要がありました。

役割とアプローチ

マーケティングサイト、ツールカタログ、そして実際に動作する各ツールに至るまで、プロダクト全体を一人で構築しました。設計の中核となったのはアーキテクチャ上の判断です。すべての実質的なPDF処理をブラウザ内で行うという点です。この選択が他のあらゆる設計を方向づけました。クライアントサイド処理によって運用サーバーが不要となり、ファイルごとの従量コストもゼロになり、「お客様のファイルはどこにも送信されません」と明確に保証できるようになりました。

技術スタック

フレームワークNext.js 16 (App Router) with React 19
PDF編集pdf-lib for structural operations (merge, split, page manipulation)
PDFレンダリングPDF.js (pdfjs-dist) for previews and thumbnails
圧縮Ghostscript compiled to WebAssembly, which runs entirely in the browser
インタラクションdnd-kit for drag-and-drop page and file ordering; JSZip for bulk image downloads
スタイリングTailwind CSS 4 with a shadcn-inspired component set
アナリティクスPostHog

主な機能

PDF結合複数ファイルを結合し、ドラッグ操作で順序を変更して1つのドキュメントとして書き出し。
PDF分割特定のページ範囲(例:1-2,5)を新しいファイルとして抽出。
PDF整理エクスポート前のページの並べ替え、回転、削除。
画像からPDFへ変換ドラッグによる並べ替え操作に対応し、JPGおよびPNGファイルをPDFに変換。
PDFから画像へ変換サムネイルプレビュー付きでページを画像として描画し、ZIP形式で一括ダウンロード。
PDFビューアーPDF.jsを採用した、ズームとページナビゲーション対応の組み込みリーダー。
PDF圧縮ブラウザ上でGhostscriptを使用してファイルサイズを削減。
発見されやすさを意識した設計サイトマップ、robotsファイル、AIクローラー向けのllm.txtを備えた本格的なマーケティングサイト。

ギャラリー

合成プロジェクト概要、システムマップ、リリースチェックリストを表示するPDF Toolkitページオーガナイザー
サンプルPDFページの90度エクスポート設定を表示するPDF Toolkitオーガナイザー

課題と解決策

「サーバーなし」の難点は、サーバーが通常行うすべての処理をブラウザ側で引き受ける必要がある点です。処理は2つのエンジンに分散させました。ドキュメントの内部構造を書き換える構造的編集にはpdf-libを使用し、ページを表示したり画像に変換したりするレンダリング処理にはPDF.jsを採用しています。

最大の難関は圧縮処理でした。本格的なPDF圧縮は通常、サーバー上で動作する重量級のネイティブツールであるGhostscriptに依存します。プライバシー保護の約束を果たすため、GhostscriptのWebAssemblyビルドを採用し、同一のエンジンがブラウザ上でローカル動作するようにしました。圧縮品質を維持しつつ、外部へのアップロードは一切生じません。また、ページやファイルの並べ替えが煩雑にならず直感的に操作できるようdnd-kitによるスムーズなドラッグ&ドロップを実装し、複数画像のエクスポートでは何十件も個別ダウンロードが走るのを防ぐためJSZipで単一のZIPにまとめました。

成果

その成果が、バックエンドなし、ファイルストレージなし、静的配信以外のホスティング費用ゼロで動作する、完全なiLovePDFスタイルのツールキットです。さらに、既存の大手サービスが提供できない「文書がデバイスから一切外部に出ないという確かな保証」を実現しています。実用的で有用なツールであり、最新ブラウザがどれほど高度な処理を担えるかを実証しています。

同様のプロダクト課題をお持ちですか?

現在のプロダクト状況、達成したい成果、直面している制約についてお聞かせください。それらをもとに適切な第1マイルストーンを策定します。

Webアプリケーション開発サービス
プロジェクト概要を送る
すべてのプロジェクト次のプロジェクトVCM
PDF Toolkit:アップロード不要、プライバシー最優先のブラウザPDFツール | Muhammad Arslan