Last Updated: 08 Oct, 2025

WebアプリケーションでPDFを扱うことは、あらゆる業界で一般的な要件となっています。請求書、契約書、学術コンテンツの管理など、どのような場合でもPDF文書をMicrosoft Word (DOCX)などの編集可能な形式に変換できることは不可欠です。幸いなことに、強力で無料のPHP APIを活用することで、開発者はこのプロセスを簡単に自動化・効率化できます。
PHPでPDFをWordに変換する理由
PDFファイルはレイアウトとデザインが維持されるため、配布に最適です。しかし、編集は必ずしも簡単ではありません。一方、Word文書は高度な編集機能を備えているため、ユーザーによる操作、更新、共同作業を必要とするタスクに最適です。PHPベースのソリューション により、開発者は次のことが可能になります。
- サーバーサイドでのバッチ処理による PDFからWordへの変換 が可能
- ウェブアプリにドキュメント編集ワークフローを統合
- レポート生成とドキュメント処理を自動化
- エンドユーザーがファイルの編集可能なバージョンをダウンロードできるようにする
最小限の設定でPDFからWordへの変換を実行できる、最も信頼性が高く無料のPHP APIとライブラリをいくつかご紹介します。
PHPWord と PDF パーサー
変換プロセスをより細かく制御するには、Word 文書の作成と操作のためのライブラリである PHPWord と PDF 解析ライブラリ を組み合わせることができます。
コード例の説明:
この例では、まず PDFParser ライブラリを使用して PDF を読み取り、各ページからテキストを抽出します。次に、PHPWord を使用して新しい Word 文書を作成し、抽出したテキストを追加します。この方法により、出力を細かく制御でき、必要に応じてテキストの書式設定やその他の要素を追加できます。
require_once 'vendor/autoload.php';
// 新しい PDF パーサーオブジェクトを作成
$parser = new \Smalot\PdfParser\Parser();
// PDF ファイルを解析
$pdf = $parser->parseFile('path/to/your/document.pdf');
// PDF からすべてのページを取得
$pages = $pdf->getPages();
// 新しい PHPWord オブジェクトを作成
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// Word 文書にセクションを追加
$section = $phpWord->addSection();
// PDF の各ページをループ処理
foreach ($pages as $page) {
// ページからテキストを抽出
$text = $page->getText();
// Word 文書にテキストを追加
$section->addText($text);
}
// Word 文書を保存します
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('output.docx');
echo "PDF コンテンツが抽出され、Word に保存されました!";
Spatie PDF-to-Text + PHPWord (テキストベースの変換)
PDF ファイルが主にプレーンテキストで構成されている場合(複雑な表や画像が含まれていない場合)、オープンソースライブラリ Spatie PDF-to-Text と PHPWord を組み合わせることで、軽量な変換パイプラインを実現できます。
仕組み
Adobe Acrobat Pro をご利用の場合、これが最も簡単な方法です。
手順:
- まず、PDF からプレーンテキストを抽出する Spatie\PdfToText API を使用します。
- PHPWord ライブラリ を使用して、抽出したコンテンツを含む Word 文書を生成します。
- 複雑な書式設定のない テキストのみの PDF に最適です。
以下は、PDF ファイルからテキストを抽出し、PHPWord ライブラリを使用して抽出したコンテンツを含む Word 文書を生成する方法を示すコード例です。
PdfReader reader = new PdfReader("form.pdf");
FileOutputStream out = new FileOutputStream("data.fdf");
FdfWriter writer = new FdfWriter();
writer.setField("name", "John Doe");
writer.writeTo(out);
reader.close();
out.close();
PHP経由のGotenberg(オープンソースのDockerマイクロサービス)
Gotenbergは、HTTPリクエストを使用してPHPと統合できるオープンソースのドキュメント変換マイクロサービスです。Dockerベースのツールを好む開発者に最適です。
仕組み
- GotenbergはバックエンドでLibreOfficeを使用してPDFを変換します。
- PDFファイルをPOSTリクエストで送信します。
- サーバーはDOCXドキュメントを返します。
Code Snippet (PHP + Gotenberg)
Aspose.PDF Cloud for PHP (Free Tier)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost:3000/forms/libreoffice/convert');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
$data = [
[
'name' => 'files',
'contents' => fopen('input.pdf', 'r'),
'filename' => 'input.pdf'
]
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
file_put_contents('output.docx', $response);
curl_close($ch);
echo "Conversion done via Gotenberg!";
Aspose.PDF Cloud for PHP (無料版)
Aspose.PDF Cloud PHP SDK は、ソフトウェア開発者がクラウド API を使用して PDF ファイルを Word 形式に直接変換 できる強力な PHP SDK を提供します。API 呼び出し回数に制限はありますが、無料で開始 できます。以下は、ソフトウェア開発者が PHP コマンドを使用して PDF ファイルを読み込み、Microsoft Word DOCX ドキュメントに変換する方法を示した簡単な例です。
コード例:
use Aspose\Pdf\Cloud\PdfApi;
$pdfApi = new PdfApi('YOUR_APP_KEY', 'YOUR_APP_SID');
$pdfApi->putConvertDocument('sample.pdf', ['format' => 'docx']);
最後に
PHPを使ってPDFファイルをWord文書に変換するのは、複雑でも高価でもありません。適切な無料ツールとライブラリを使えば、開発者はシームレスで編集可能なドキュメントエクスポートをユーザーに提供し、ドキュメントの自動化を促進し、全体的な生産性を向上させることができます。軽量なPHPラッパーを好む場合でも、堅牢なクラウドベースのAPIを好む場合でも、ニーズに合ったソリューションが見つかります。
FAQ
Q: 有料APIを使わずにPHPでPDFをWordに変換できますか?
A: はい。Spatie、PHPWord、LibreOffice CLIなどのオープンソースライブラリを無料で使用できます。
Q: オープンソースのPDFからWordへの変換ツールは、画像や書式設定をサポートしていますか?
A: 基本的なツールではサポートされていませんが、LibreOfficeまたはGotenbergを使用すると、レイアウトと画像が保持されます。
Q: PHP WebアプリでPDFからDOCXへの変換を自動化できますか?
A: もちろんです。これらのライブラリは、あらゆるPHPベースのワークフローに統合できます。