Как сохранить страницу Корзины в WordPress в формате PDF с возможностью копирования текста?

Привет всем! <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 =&gt; {
				item.remove();
			})
			
        
            html2pdf(clone, {
                filename: 'накладная.pdf',
                margin: 1,
                jsPDF: { hotfixes: ["px_scaling"], unit: 'px', format: [original.offsetHeight, original.offsetWidth ], orientation: countProducts &gt; 1 ? 'p' : 'l' }
            });
            openGenerateModal();
        } else {
			const wrapper = document.querySelector('body');
			const clone = document.querySelector('.catalog .container').cloneNode(true);
  • 5 декабря 2024 г. 10:13
Ответы на вопрос 2
Сохранение страницы Корзины в формате 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 и предоставить возможность копирования текста.
Подскажите, как решить?

Легко !

Тем более что
По структуре накладной требований нет особых
Похожие вопросы