「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP と JavaScript を使用して Web ページを PDF としてダウンロードする

PHP と JavaScript を使用して Web ページを PDF としてダウンロードする

2024 年 11 月 8 日に公開
ブラウズ:758

Downloading Webpages As PDFs With PHP And JavaScript

PHP で HTML を PDF に変換するのは簡単でした。さらに一歩進んで、PHP と JavaScript を使用して Web ページを PDF ファイルに変換してみましょう。

これを行うには、Composer と Node をインストールする必要があります。

これらのものをインストールした後、Composer を使用して Dompdf をインストールし、npm (ノード パッケージ マネージャー) を使用して Puppeteer をインストールする必要があります:

composer require dompdf/dompdf

npm install puppeteer

HTMLファイルの作成(例:index.html):



    Webpage to Pdf

PHP ファイルの作成 (例: web-pdf.php):

getMessage();
    }
} else {
    echo "No URL provided.";
}

function convertHTML($content) {
    $dompdf = new Dompdf();
    $dompdf->loadHtml($content);

    // Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');

    // Render the HTML as PDF
    $dompdf->render();

    ob_end_clean();

    // Output the generated PDF
    $dompdf->stream();
}
?>

最後に、Puppeteer を使用するための JavaScript ファイルを作成します (例: download.js):

const puppeteer = require('puppeteer');

// Get URL from command-line arguments
const url = process.argv[2];

(async () => {
  try {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url); // Use the URL passed from PHP
    await page.waitForSelector('main', { timeout: 10000 }); // Adjust selector and timeout as needed

    const content = await page.content();
    console.log(content);

    await browser.close();
  } catch (error) {
    console.error('Error:', error);
  }
})();

注: コンテンツが期待どおりでない場合は、10 秒のタイムアウトを削除するか、要素 (メイン) を変更します。

それでは!このようにして、Web ページから PDF へのコンバーターが完成しました。

コーディングの皆さん、ハッピー!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/nifty-little-me/downloading-webpages-as-pdfs-with-php-and-javascript-56hh?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3