Сохранение веб-страницы в формате PDF с помощью JavaScript

Чтобы сохранить веб-страницу в формате PDF с помощью JavaScript, вы можете использовать различные методы и библиотеки. Вот несколько вариантов:

  1. Использование встроенной функции window.print():

    window.print();

    Этот метод запускает диалоговое окно печати, позволяющее пользователю выбрать место назначения в виде PDF-файла. Однако этот метод основан на том, что пользователь вручную выбирает параметр PDF в диалоговом окне печати.

  2. Использование сторонней библиотеки, например jsPDF:
    jsPDF – это популярная библиотека JavaScript, которая позволяет программно создавать PDF-файлы. Вы можете создавать PDF-документы, добавлять в них текст, изображения и другие элементы и сохранять их непосредственно на устройстве пользователя. Подробную документацию и примеры можно найти на сайте jsPDF: https://github.com/MrRio/jsPDF

    Вот пример использования jsPDF для сохранения веб-страницы в формате PDF:

    // Include the jsPDF library
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.4.0/jspdf.umd.min.js"></script>
    // Create a new jsPDF instance
    var doc = new jsPDF();
    // Add content to the PDF (e.g., the HTML content of a specific element)
    var element = document.getElementById('elementId');
    doc.fromHTML(element, 15, 15);
    // Save the PDF
    doc.save('filename.pdf');
  3. Использование библиотеки Puppeteer.
    Puppeteer — это библиотека Node.js, предоставляющая высокоуровневый API для управления автономными браузерами Chrome или Chromium. Он позволяет автоматизировать такие задачи, как создание PDF-файлов с веб-страниц. Дополнительную информацию и примеры можно найти в документации Puppeteer: https://github.com/puppeteer/puppeteer

    Вот пример использования Puppeteer для сохранения веб-страницы в формате PDF:

    const puppeteer = require('puppeteer');
    (async () => {
     const browser = await puppeteer.launch();
     const page = await browser.newPage();
     await page.goto('https://www.example.com');
     await page.pdf({ path: 'filename.pdf', format: 'A4' });
     await browser.close();
    })();