Конвертировать файл Informix в PDF - PullRequest
1 голос
/ 06 марта 2019

Можно ли конвертировать файл в PDF напрямую из Informix? Есть ли команда для этого? Если это невозможно, то что мне делать? Например: я хочу конвертировать файл sm2026.4gl в PDF.

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

Вам доступно несколько вариантов. То, что вы выберете, будет зависеть от того, сколько времени и денег вы готовы инвестировать. Чем больше вы готовы инвестировать, тем лучше вы получите отчеты

  1. Выполните поиск в Google по сценариям / исполняемым файлам, которые возьмут текстовый файл и преобразуют в PDF. Примеры включают в себя txt2pdf. Они работают с любыми текстовыми файлами и поэтому не зависят от 4gl. Вы изменили бы свой код 4gl, чтобы выполнить его через RUN сразу после ОТЧЕТА О ФИНИСЕ

  2. Напишите библиотеки 4gl для создания правильного вывода PDF. Это включает в себя чтение руководств в формате PDF, чтобы увидеть структуру, необходимую в файле PDF. Первая строка полученного файла будет начинаться с «% PDF». Это большая работа, я сделал это 15-20 лет назад, я бы не стал делать это снова, если бы вы не хотели контроля и независимости, которые это дает вам.

  3. Использование такого продукта, как FourJs Genero, который позволит вам использовать существующий код 4gl для непосредственного создания отчетов в формате PDF. В самом простом случае это включает добавление пары строк перед вашим START REPORT и оставление оператора REPORT без изменений. В отчете будет использоваться моноширинный шрифт, который будет выглядеть как существующий отчет, только это PDF-файл, а не TXT-файл.

    IF fgl_report_loadCurrentSettings(NULL) THEN -- simple compatibility mode
        CALL fgl_report_selectDevice("PDF")      -- indicates PDF 
        ...  -- optional calls to indicate filename, paper, printer and other options if required
        LET grw = fgl_report_commitCurrentSettings()
    
        START REPORT report-name TO XML HANDLER grw
    

При использовании этого параметра доступно несколько дополнительных параметров конфигурации, таких как добавление водяных знаков / логотипов на каждую страницу, которую бесплатные инструменты, которые вы обнаружите, могут не обеспечить

  1. Более многофункциональная опция с использованием FourJs Genero Report Writer включает в себя извлечение любой информации о макете из кода 4gl и разработку макета отчета в конструкторе WYSIWYG. Ваш код 4gl, который собирает данные из базы данных и функции, которые формулируют вывод, остается нетронутым. Для оператора REPORT больше не требуется информация макета, такая как COLUMN 10, SKIP TO TOP OF PAGE, и ее можно удалить. WYSIWYG-дизайн отчета управляет макетом, включая полный набор свойств, таких как шрифт, атрибуты шрифта, расположение, разрывы страниц, нумерация страниц, изображения. Таким образом, ваш код 4gl становится

    -- Report
    -- No layout information in report, only need to gather and formulate data
    REPORT report-name ...
        BEFORE GROUP OF invoice
            PRINT invoice.*       
        ON EVERY ROW
            PRINT invoice_line.* 
        AFTER GROUP OF invoice
            LET invoice_total.net = GROUP SUM(...)
            PRINT invoice_total.* 
    END REPORT
    ...
    -- Produce report 
    IF fgl_report_loadCurrentSettings("reportdesign.4rp") THEN -- load the WYSIWYG design
        CALL fgl_report_selectDevice("PDF")      -- indicates PDF 
        ...  -- calls to indicate filename, paper, printer and other options if required
        LET grw = fgl_report_commitCurrentSettings()
    
        START REPORT report-name TO XML HANDLER grw    
    

Как показано, вам доступно несколько вариантов. От того, что вы должны делать, зависит от вашей цели и того, сколько времени и денег вы готовы инвестировать для достижения этой цели.

0 голосов
/ 08 марта 2019

Я не уверен, правильно ли я понимаю проблему, похоже, вы пытаетесь получить PDF-версию программы 4GL, что не имеет никакого смысла.Есть любое количество бесплатных веб-сайтов , которые могут сделать это за вас.

Если, однако, вы спрашиваете, как получить отчет 4GL для создания PDF, это значительно интереснее.проблема.Informix-4GL не будет писать файл PDF изначально.Если я правильно помню, 4Js Genero и Querix Lycia могут.

Однако в Linux есть драйвер принтера PDF (cups-pdf), который выводит отчет в файл PDF.

Выполнение этого оставлено в качестве упражнения для читателя.: -)

...