Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Автоматизация печати PDF в приложениях Delphi на macOS

Delphi , ОС и Железо , Принтеры и Печать

При разработке приложений на языке Delphi для платформ Windows и macOS часто возникают специфические задачи, связанные с особенностями каждой из операционных систем. Одной из таких задач является автоматизация процесса печати документов в формате PDF на компьютерах Apple. В данной статье мы рассмотрим, как можно автоматизировать процесс печати PDF в приложениях Delphi на macOS, используя встроенные средства операционной системы.

Проблема

Разработчик столкнулся с необходимостью автоматизации процесса печати изображения и его метаданных в формате PDF в приложении на Delphi. Для Windows-версии приложения была создана форма для генерации предварительного просмотра печати, в то время как для macOS разработчик хотел использовать встроенную функцию диалога печати, которая позволяет открыть PDF в программе "Просмотр" (Preview). Проблема заключалась в том, чтобы активировать эту функцию напрямую из кнопки, чтобы пользователю не приходилось открывать диалог печати, выбирать опцию "PDF" и затем нажимать "Открыть PDF в Просмотре".

Решение

После изучения различных способов, включая использование Automator и AppleScript, разработчик нашел более быстрое решение с помощью утилиты cupsfilter. Эта утилита позволяет преобразовывать изображения в PDF, результатом работы которой является вывод PDF в стандартный поток вывода. Используя команду cupsfilter <an-image-file>, можно получить PDF, который затем можно открыть в программе "Просмотр" с помощью команды open -f -a "Preview".

Пример кода

Для использования cupsfilter в коде на Object Pascal (Delphi) можно создать внешнюю команду, которая будет обращаться к этой утилите. Вот пример кода, который демонстрирует, как можно вызвать cupsfilter и открыть полученный PDF в программе "Просмотр":

uses
  System.SysUtils,
  System.Classes;

procedure TForm1.PrintToPDF(const ImageFile: TFileName);
var
  PDFFile: TFileName;
begin
  PDFFile := 'temp.pdf';
  // Вызов cupsfilter для создания PDF
  System.ShellExec(TShellExecFlags.sfUnhide, 'cupsfilter', ImageFile, PDFFile, '', SwShow, 0, 0, 0);
  // Открытие PDF в программе Preview
  System.ShellExec(TShellExecFlags.sfUnhide, 'open', '-f', '-a', '"Preview"', PDFFile, '', 0, 0, 0);
end;

Этот код создает временный PDF-файл из указанного изображения и открывает его в "Просмотре". Обратите внимание, что для работы этого кода необходимо, чтобы изображение было доступно в файловой системе, так как cupsfilter не может работать с файлами, существующими только в памяти.

Заключение

может быть выполнена с использованием встроенных инструментов macOS, таких как cupsfilter. Это позволяет разработчикам интегрировать функционал печати PDF прямо в свой интерфейс, делая использование приложения более удобным и интуитивно понятным для пользователей macOS.

Создано по материалам из источника по ссылке.

Автоматизация процесса печати PDF документов в приложениях на Delphi для macOS с использованием встроенных инструментов операционной системы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Принтеры и Печать ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 20:57:06/0.0050349235534668/1