Шаблон для экспорта PDF (Колонки)

Все вопросы/проблемы по установке и использовании.
Ответить
Romiros
Сообщения: 158
Зарегистрирован: 02 ноя 2022, 05:15
Имя: Роман Сысоев
Откуда: Иркутск
Организация: ООО "ДНС Ритейл"

Шаблон для экспорта PDF (Колонки)

Сообщение Romiros »

Доброго времени, суток!

Создал Шаблон для экспорта docx попробовал сохранить в PDF
в полученном файле заметил что неверно сохранились колонки
Изображение

Подскажите как это исправить?
Romiros
Сообщения: 158
Зарегистрирован: 02 ноя 2022, 05:15
Имя: Роман Сысоев
Откуда: Иркутск
Организация: ООО "ДНС Ритейл"

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Romiros »

Попробовал переделать и в docx файле создал таблицу убрал границы.

Теперь в PDF файле появилась таблица с видимыми границами.
Как сделать их прозрачными?
Изображение
Romiros
Сообщения: 158
Зарегистрирован: 02 ноя 2022, 05:15
Имя: Роман Сысоев
Откуда: Иркутск
Организация: ООО "ДНС Ритейл"

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Romiros »

Даже если поместить в одну строку и разделить табуляцией или пробелами, не чего не получается (
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Antonyous99 »

Да если бы там цвет бордера задавлася, то можно было бы белым сделать...
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Romiros
Сообщения: 158
Зарегистрирован: 02 ноя 2022, 05:15
Имя: Роман Сысоев
Откуда: Иркутск
Организация: ООО "ДНС Ритейл"

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Romiros »

Хорошая мысль.

Я попробовал не убрать границу а покрасить её в белый.
К сожалению всё осталось по прежнему, граница таблицы черная, хотя это очень странно
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Antonyous99 »

Сделайте вообще шаблон не DOCX, а HTML/PDF.
Там все можно.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Romiros
Сообщения: 158
Зарегистрирован: 02 ноя 2022, 05:15
Имя: Роман Сысоев
Откуда: Иркутск
Организация: ООО "ДНС Ритейл"

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Romiros »

Подскажите пожалуйста
вот есть
Изображение

Мне выбирать html, если да, тогда вопрос
как в этом режиме создавать поля так же как в режиме docx
Изображение

Не могу понять(

Заранее благодарю.
Аватара пользователя
Antonyous99
Сообщения: 752
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Antonyous99 »

Да, можно HTML или HTML_CODE
Вот документация.
https://docs.rukovoditel.net.ru/index.php?p=55
Если сложный шаблон, обращайтесь за помощью в личку, в телегу.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Romiros
Сообщения: 158
Зарегистрирован: 02 ноя 2022, 05:15
Имя: Роман Сысоев
Откуда: Иркутск
Организация: ООО "ДНС Ритейл"

Re: Шаблон для экспорта PDF (Колонки)

Сообщение Romiros »

Я реализовал другой способ через LibreOffice CLI

Установил на сервере libreoffice

переписал function download_pdf() которая находиться в plugins\ext\classes\templates\export_templates_blocks.php

Код: Выделить всё

function download_pdf($temp_filename)
    {
        global $app_entities_cache;

        if (!is_file(DIR_FS_TMP . $temp_filename)) {
            die(TEXT_FILE_NOT_FOUND);
        }

        $input_path = DIR_FS_TMP . $temp_filename;
        $output_dir = DIR_FS_TMP;

        // Генерируем имя выходного файла
        $pdf_filename = pathinfo($temp_filename, PATHINFO_FILENAME) . '.pdf';
        $output_path = $output_dir . $pdf_filename;

        // Полный путь к soffice.exe (LibreOffice)
        $libreoffice_path = '"C:\\Program Files\\LibreOffice\\program\\soffice.exe"';
        
        // Команда конвертации
        $command = "$libreoffice_path --headless --convert-to pdf --outdir " . escapeshellarg($output_dir) . " " . escapeshellarg($input_path);

        // Выполняем команду
        exec($command, $output, $return_var);

        // Проверяем результат
        if ($return_var !== 0 || !is_file($output_path)) {
            echo "<h3>Ошибка конвертации</h3>";
            echo "<p><strong>Команда:</strong> $command</p>";
            echo "<p><strong>Код ошибки:</strong> $return_var</p>";
            echo "<p><strong>Вывод:</strong><pre>" . print_r($output, true) . "</pre></p>";
            exit();
        }

        // Подготавливаем имя файла
        $filename = (strlen($_POST['filename']) ? $_POST['filename'] : $app_entities_cache[$this->template_info['entities_id']]['name']);
        $filename = app_remove_special_characters($filename) . '.pdf';

        // Отправляем файл пользователю
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment; filename="' . addslashes($filename) . '"');
        readfile($output_path);

        // Чистим временные файлы
        @unlink($input_path);
        @unlink($output_path);

        exit();
    }
При запуске, да конвертирует медленее, но зато всё норм и границы прозрачные передает в таблицах word и колонки, но есть один ньюанс...

Теперь та область которая собирает табличную часть документа в Шаблоне для Экспорта docx,
Изображение
При данном способе в pdf выгледит так
вместо табличной части получаем квадрат Малевича.
Изображение

При этом в word всё сохраняется отлично.

Вопросы:
1. Как это можно победить, подскажите в какую сторону смотреть, или может есть способ выяснить и понять почему так?
2. Можно ли функцию которую я написал оформить как плагин чтобы каждый раз при обновлении СРМ ручками не лезть в код?

П.С. Может кому еще пригодиться данный способ.
Ответить