"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP 및 JavaScript를 사용하여 웹페이지를 PDF로 다운로드

PHP 및 JavaScript를 사용하여 웹페이지를 PDF로 다운로드

2024-11-08에 게시됨
검색:702

Downloading Webpages As PDFs With PHP And JavaScript

PHP에서 HTML을 PDF로 변환하는 것은 쉬웠습니다. 한 단계 더 발전시켜 PHP와 JavaScript를 사용하여 웹페이지를 PDF 파일로 변환해 보겠습니다.

이렇게 하려면 Composer와 Node를 설치해야 합니다.

이러한 항목을 설치한 후에는 npm(노드 패키지 관리자)을 사용하여 Composer 및 Puppeteer를 사용하여 Dompdf를 설치해야 합니다.

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초 제한 시간을 제거하거나 요소(기본)를 변경하세요.

자, 됐어요! 이렇게 하면 웹페이지를 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