Функция на JavaScript для экспорта указанного текста со страницы сайта в PDF-файл с помощью библиотеки Pdfmake. Сохраняет текст на кириллице.
Функция для экспорта текста в PDF
Функция на JavaScript для создания PDF-файла из текста на HTML-странице:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
function generatePDF() { // Получение текста из элемента HTML const contentElement = document.getElementById('text-content'); const textContent = contentElement.innerText || contentElement.textContent; // Определение содержимого PDF-документа const docDefinition = { content: [ { text: 'PDF-документ', style: 'header' }, { text: textContent, style: 'body' } ], styles: { header: { fontSize: 18, bold: true, margin: [0, 0, 0, 10] }, body: { fontSize: 12, lineHeight: 1.5 } } }; // Генерация и скачивание PDF pdfMake.createPdf(docDefinition).download('document.pdf'); } // Добавление обработчика события для кнопки document.addEventListener('DOMContentLoaded', () => { const button = document.getElementById('generatePdfButton'); button.addEventListener('click', generatePDF); }); |
Этот скрипт предполагает наличие элемента с ID text-content
и кнопки с ID generatePdfButton
на html-странице. Когда пользователь нажимает кнопку, текст из элемента сохраняется в PDF-файл с именем по умолчанию document.pdf
, который автоматически загружается на устройство.
HTML-страница для тестирования
Пример HTML-страницы для тестирования функции на JavaScript для экспорта текста в PDF-файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<!DOCTYPE html> <html lang="ru-RU"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Генератор PDF</title> <!-- Подключение библиотеки pdfmake --> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script> <script defer src="C:\Test\export-txt-pdf.js"></script> </head> <body> <h1>Генератор PDF</h1> <div id="text-content"> <p>Это пример текста, который будет преобразован в PDF-документ.</p> <p>Вы можете добавить сюда ещё больше текста.</p> </div> <button id="generatePdfButton">Создать PDF</button> </body> </html> |
Использование библиотеки Pdfmake позволяет экспортировать в PDF-файл текст на кириллице.
Тестирование экспорта текста в PDF
Для тестирования функции на JavaScript для экспорта текста в PDF-файл необходимы следующие действия:
- Создайте папку
Test
в каталогеC:
. - Создайте в папке
Test
текстовый файл с именемexport-txt-pdf.js
и вставьте в него код функции вместе с обработчиком события для кнопки. - Создайте в папке
Test
текстовый файл с именемexample-export-txt-pdf.html
и вставьте в него код HTML-страницы для тестирования.
Теперь вы можете открыть файл example-export-txt-pdf.html
(он откроется в браузере по умолчанию), нажать кнопку Создать PDF
и увидеть результат работы.
Приведенный код для экспорта текста в PDF-файл успешно протестирован на странице сайта WordPress. Главное, подобрать уникальный ID для элемента, из которого экспортируется текст.
Ну и конечно же, для тестирования на WordPress или на других CMS, необходимо убрать из приведенного примера кода лишние html-теги, которые уже присутствуют на странице, сгенерированной CMS.
Еще один вариант экспорта
Этот код позволяет не выносить функцию JavaScript в отдельный файл и дает возможность задавать параметры экспорта непосредственно на HTML-странице:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<!DOCTYPE html> <html lang="ru-RU"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Создание PDF-документа</title> <!-- Подключение библиотеки pdfmake --> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.4/pdfmake.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.4/vfs_fonts.js"></script> </head> <body> <h1>Создание PDF-документа</h1> <p id="text-content">Это пример текста, который будет преобразован в PDF-документ с помощью библиотеки Pdfmake.</p> <button id="generate-pdf">Скачать PDF</button> <script> // Функция для генерации PDF document.getElementById('generate-pdf').addEventListener('click', function () { // Получаем текст из элемента const textContent = document.getElementById('text-content').innerText; // Создаем контент для PDF const docDefinition = { content: [ { text: 'PDF-документ', style: 'header' }, textContent ], styles: { header: { fontSize: 18, bold: true, margin: [0, 0, 0, 10] } } }; // Генерация и скачивание PDF pdfMake.createPdf(docDefinition).download('download.pdf'); }); </script> </body> </html> |
Чтобы этот код работал на странице сайта WordPress, между тегами <script> </script>
не должно быть пропущенных строк.
Ну и конечно же, для тестирования на WordPress или на других CMS, необходимо убрать из приведенного примера кода лишние html-теги, которые уже присутствуют на странице, сгенерированной CMS.
Смотрите также, как экспортировать текст в текстовый файл и как экспортировать таблицу в PDF-файл.