ソフトウェア解説ドキュメント
PDFファイルに埋め込まれたテキストをブラウザ内で完全に抽出し、Microsoft Word形式(.docx)に変換するWebアプリケーションです。外部サーバーへのファイル送信は一切行いません。
概要
PDFドキュメントをWordファイルへ変換する作業を、インターネット接続さえあれば誰でも・どこでも・無料で行えるようにしたツールです。
従来のPDF→Word変換サービスはファイルを外部サーバーにアップロードする方式が主流でしたが、このツールはすべての処理をブラウザ上のJavaScriptエンジンで完結させます。機密性の高い文書でも安心して利用できます。
PDFからのテキスト抽出にはMozilla開発のPDF.jsライブラリ(CDN経由)を使用し、抽出したテキストからOpen XML仕様に準拠した.docxファイルをその場で生成します。生成されたファイルはMicrosoft Word、LibreOffice、Google Docsなど主要なオフィスソフトで開けます。
ファイルサイズ上限は50MBで、ページ数の制限はありません。変換処理中はリアルタイムのプログレスバーと処理ログで進捗を確認できます。
動作の仕組み
ドラッグ&ドロップまたはファイル選択でPDFを受け取ります。File APIでArrayBufferとして読み込み、形式とサイズを検証します。
PDF.jsがPDFの内部構造を解析。各ページのテキストオブジェクト(文字列・位置情報)を取り出します。
Y座標でテキストを並び替え、行・段落に再構成します。「シンプル」「段落分け」の2モードから選べます。
Open XML仕様に従いdocument.xmlを構築。ZIPアーカイブに梱包してBlobオブジェクトとして出力、ダウンロードリンクを生成します。
主な機能
ファイルはブラウザ外に一切出ません。外部APIへの通信なし。社外秘・個人情報含む文書でも安全に利用できます。
ネットワーク転送なしのローカル処理のため、ファイルサイズに比例した速度で変換が完了。10ページのPDFなら数秒以内。
日本語テキストを含むPDFに対応。UTF-8での出力を基本とし、Shift-JIS環境向けの設定も選択できます。
「シンプル(改行のみ)」は行単位で忠実に出力。「段落分け」はY座標の近似で行をグループ化し、読みやすい段落構造を生成します。
変換中はページごとの進捗をログで確認可能。プログレスバーとテキストラベルで全体の進行状況も一目でわかります。
見出し1(ファイル名)・見出し2(ページ番号)・本文の3スタイルを持つ構造化Wordファイルを出力。ページ区切りも自動挿入。
技術スタック
PDFの解析・レンダリングのためのオープンソースライブラリ。getTextContent()でテキストオブジェクトを取得します。CDNから読み込みます。
Microsoftが策定したOfficeドキュメント標準仕様。document.xml・styles.xml・_rels等をゼロから生成し、ZIPに梱包します。
外部ライブラリなしでLocalFileHeader・CentralDirectory・EOCD構造を手動構築。CRC-32計算も自前実装しています。
FileReader / ArrayBuffer経由でローカルファイルをブラウザ内に読み込みます。ドラッグ&ドロップはDataTransfer APIを使用。
生成したDOCXバイナリをBlobオブジェクトとしてメモリ上に保持し、URL.createObjectURLでダウンロードリンクを動的生成します。
XMLテキストをUTF-8バイト列に変換してZIPファイル内に格納するために使用します。Uint8Array操作と組み合わせています。
注意事項・制限事項
紙をスキャンしてPDF化したファイル(テキスト非埋め込み)はテキスト抽出ができません。このようなPDFにはOCR処理が別途必要です。
PDF内の画像、グラフ、表組みは出力Wordファイルには含まれません。テキストコンテンツのみが対象です。
2カラム・回り込みテキスト・テキストボックスなど複雑なレイアウトは、テキストの読み取り順が変わることがあります。
Word・InDesign・LaTeX等から出力したテキスト埋め込みPDFは問題なく変換できます。日本語フォント埋め込みも対応しています。
50MBまでのファイルに対応。数百ページのレポートや書籍PDFも変換できます。処理はページごとに非同期で行われます。
パスワード保護のないPDFファイルに対応。パスワード付きPDFは事前にパスワードを解除してからご利用ください。