ホームページ >バックエンド開発 >PHPの問題 >PHPでWordをPDFに変換する方法

PHPでWordをPDFに変換する方法

PHPz
PHPzオリジナル
2023-04-04 10:39:513566ブラウズ

PHP で Word を PDF に変換

日々の仕事の中で、Word 文書を PDF に変換する必要が生じることがあります。この記事では、PHP を使用して Word 文書を PDF 形式に変換する方法を実践的な観点から紹介します。

1. PHPWord ライブラリを使用して Word ドキュメントを作成する

まず、PHPWord ライブラリを使用して Word ドキュメントを作成する必要があります。 PHPWord は、Word ドキュメントの作成、Microsoft Office Word ドキュメントの読み書きのための PHP ライブラリです。これを使用すると、Microsoft Office Word ドキュメントを簡単に作成、読み取り、変更できます。

インストール ガイドに従って、GitHub でライブラリをダウンロードし、プロジェクトにデプロイできます。次のコードを使用して、単純な Word ドキュメントを作成できます。

require_once '../PHPWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$section->addText('Hello World!');

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('helloWorld.docx');

上記のコードにより、「Hello World!」を含む Word ドキュメント「helloWorld.docx」が正常に生成されました。

2. unoconv を使用して Word 文書を PDF 形式に変換する

次に、unoconv を使用して、前の手順で生成された Word 文書を PDF 形式に変換する必要があります。 Unoconv は、さまざまな形式のドキュメントを変換するためのコマンドライン ツールで、ほぼすべてのファイル形式をサポートしています。

まずサーバーに unoconv をインストールし、次のコードを使用して Word ドキュメントを PDF 形式に変換します。

$command = "unoconv -f pdf helloWorld.docx";
exec($command, $output);

if (empty($output)) {
    echo '生成PDF文件成功!';
} else {
    echo '生成PDF文件失败!';
}

上記のコードにより、「helloWorld.docx」を同じ内容を含む PDF ファイル「helloWorld.pdf」に変換することができました。

3. 変換プロセスを改善する

さまざまなニーズに応えて、上記のプロセスを改善する必要があります。たとえば、Word ドキュメントを生成する場合、PHPWord が提供する API を介してドキュメントのタイトル、スタイル、フォント、その他の情報を設定できます。また、Word ドキュメントを PDF に変換する場合、いくつかのオプションを使用して PDF の生成を制御できます。 、PDF セキュリティ属性の設定、PDF のページ サイズの設定など。

たとえば、次のコードは PHPWord API を使用してより複雑な Word ドキュメントを生成し、unoconv 経由で PDF 形式に変換します。

require_once '../PHPWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$section->addText('This is a title', array('size' => 20, 'bold' => true));
$section->addTextBreak(1);
$section->addText('This is a paragraph', array('size' => 12, 'color' => '000000', 'bold' => false));
$section->addTextBreak(1);
$table = $section->addTable();
$table->addRow();
$table->addCell(3000)->addText('Field A');
$table->addCell(3000)->addText('Field B');
$table->addCell(3000)->addText('Field C');
$table->addRow();
$table->addCell(3000)->addText('Value A');
$table->addCell(3000)->addText('Value B');
$table->addCell(3000)->addText('Value C');

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('document.docx');

$command = "unoconv --format=pdf --output=pdffile.pdf document.docx";
exec($command, $output);

if (empty($output)) {
    echo '生成PDF文件成功!';
} else {
    echo '生成PDF文件失败!';
}

上記のコードにより、タイトル、段落、表を含む Word 文書「document.docx」が生成され、unoconv を通じて PDF ファイル「pdfFile.pdf」に変換されました。

概要

上記の方法を使用すると、PHP に基づいて Word ドキュメントを作成し、unoconv を通じて PDF 形式に変換できます。それだけでなく、PHPWord が提供する API を介してより複雑な Word ドキュメントを生成し、unoconv が提供するオプションを介して生成された PDF ファイルを制御することもできます。この方法は便利かつ高速であり、文書の美しさを保証できるため、実際の業務での適用に非常に適しています。

以上がPHPでWordをPDFに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。