Привет всем! <br/> <br/> У меня возникла задача: необходимо сохранить страницу Корзины (сайт на WordPress с WooCommerce) в формате PDF, при этом сохранить возможность копирования текста из полученного PDF-файла. Учитывая, что на сайте не происходит продаж, нужно использовать добавленные товары для формирования товарной накладной. Специальных требований к структуре накладной нет, подойдет стандартное оформление страницы Корзины. <br/> <br/> Примерный процесс можно увидеть здесь: <a href="http://mywp.01sh.ru/eisen_wp/katalog/" rel="nofollow">mywp.01sh.ru/eisen_wp/katalog</a> -> Добавление товара в корзину -> Переход в корзину -> Формирование товарной накладной <br/> <br/> Я уже использовал html2pdf для решения этой задачи. Из страницы нужно убрать заголовок и кнопки, поэтому я делаю копию страницы, затем скриншот и конвертирую в PDF: <br/> <pre><code class="javascript">function generateNote(button) {
if(checkDevice()) {
const original = document.querySelector('.catalog');
const clone = document.querySelector('.catalog').cloneNode(true);
const countProducts = document.querySelectorAll('.catalog-card').length;
clone.querySelector('.section__heading').remove();
clone.querySelectorAll('.specifications-btn').forEach(item => {
item.remove();
})
html2pdf(clone, {
filename: 'накладная.pdf',
margin: 1,
jsPDF: { hotfixes: ["px_scaling"], unit: 'px', format: [original.offsetHeight, original.offsetWidth ], orientation: countProducts > 1 ? 'p' : 'l' }
});
openGenerateModal();
} else {
const wrapper = document.querySelector('body');
const clone = document.querySelector('.catalog .container').cloneNode(true);
Сохранение страницы Корзины в формате PDF с возможностью копирования текста — это задача, которую можно решить с помощью библиотек JavaScript, таких как html2pdf. Вы уже на правильном пути, используя html2pdf для создания PDF-документа. Однако, давайте уточним, как удалить элементы, такие как заголовки и кнопки, и как правильно использовать вашу функцию для генерации PDF, чтобы сохранить текст в копируемом формате.
### Шаги для сохранения страницы Корзины в PDF:
1. **Убедитесь, что вы используете `html2pdf` правильно**: Для генерации документов PDF с возможностью копирования текста вам нужно генерировать PDF из HTML, который не содержит лишних элементов, таких как заголовки и кнопки.
2. **Создайте клон необходимой области страницы**: Вы собираетесь делать клон элемента, который содержит информацию о товарах в корзине и удалять ненужные элементы.
3. **Используйте `html2pdf` для конвертации клона в PDF**: Как вы уже упоминали, вы можете использовать `html2pdf()` для преобразования HTML в PDF.
### Пример кода
Вот более детализированный подход, который вы можете использовать:
```javascript
function generateNote() {
const original = document.querySelector('.catalog');
const clone = original.cloneNode(true);
// Удаление заголовка
const heading = clone.querySelector('.section__heading');
if (heading) heading.remove();
// Удаление кнопок и других ненужных элементов
clone.querySelectorAll('.specifications-btn').forEach(item => item.remove());
// Создание файла PDF
html2pdf()
.from(clone)
.set({
filename: 'накладная.pdf',
margin: 1,
jsPDF: {
hotfixes: ["px_scaling"],
unit: 'px',
format: 'a4',
orientation: 'portrait'
}
})
.save();
}
```
### Рекомендации:
- **Проверьте CSS**: Убедитесь, что стили, которые вы применяете в HTML, также применяются при генерации PDF. Иногда стили нужно немного подкорректировать, чтобы они корректно отображались в PDF.
- **Тестирование**: После реализации изменений протестируйте PDF на наличие возможности копирования текста и корректности отображения данных.
- **Поддержка форматов**: Если вы хотите добавить возможности, такие как заголовки или динамическое содержимое, поиграйтесь с параметрами `html2pdf` для настройки вашего PDF.
Эти шаги помогут вам сохранить страницу Корзины в PDF и предоставить возможность копирования текста.
<blockquote>Подскажите, как решить? </blockquote> <br/> <a href="https://wordpress.org/plugins/search/invoice" rel="nofollow">Легко</a> ! <br/> <br/> Тем более что <br/> <blockquote>По структуре накладной требований нет особых </blockquote>