Привет мир от Delphi HotPDF Component

Привет мир от Delphi HotPDF Component

Добро пожаловать в подробное руководство по демонстрационной программе HelloWorld для Delphi HotPDF Component!

О HotPDF Component

HotPDF Component – это мощная и универсальная библиотека для обработки PDF, специально разработанная для разработчиков Delphi и C++Builder. Этот комплексный компонент предоставляет обширный API, который позволяет разработчикам легко и точно создавать, манипулировать и изменять PDF-документы.

Ключевые особенности HotPDF Component:

  • Создание и генерация PDF: Создание PDF-документов с нуля с полным контролем над макетом, форматированием и содержимым
  • Поддержка текста и графики: Добавление текста, изображений, фигур и сложной графики на страницы PDF
  • Многоязычная поддержка: Полная поддержка Unicode для международного отображения текста
  • Управление шрифтами: Встраивание шрифтов для согласованного внешнего вида документа в различных системах
  • Опции сжатия: Множественные алгоритмы сжатия для оптимизации размера файла
  • Функции безопасности: Шифрование документов, защита паролем и контроль разрешений
  • Манипуляция документами: Объединение, разделение и изменение существующих PDF-документов
  • Поддержка таблиц и форм: Создание сложных таблиц и интерактивных форм

HotPDF Component Delphi Hello World Sample

Обзор программы HelloWorld.dpr

Пример программы HelloWorld.dpr служит отличным введением в самую базовую и важную функцию HotPDF Component: функцию TexOut. Эта демонстрационная программа также демонстрирует базовую функциональность создания PDF.

Основная функциональность:

1. Создание PDF-документа

Основная функция программы – генерация PDF-документов, содержащих многоязычный текст “Hello World”. Процедура CreatePDF демонстрирует:

  • Инициализация компонента: Правильная настройка и конфигурация компонента THotPDF
  • Свойства документа: Установка метаданных, таких как опции сжатия и встраивание шрифтов
  • Многоязычное отображение текста: Отображение текста на 11 различных языках, включая английский, испанский, немецкий, французский, итальянский, португальский, русский, японский, турецкий, китайский и корейский
  • Управление шрифтами: Использование Arial Unicode MS для большинства языков и Malgun Gothic для корейского текста
  • Сравнение сжатия: Создание как сжатых, так и несжатых версий для демонстрации различий в размере файла

2. Управление окнами и интеграция с системой

Программа включает сложную функциональность перечисления окон, которая демонстрирует:

  • Перечисление системных окон: Использование Windows API функции EnumWindows для итерации по всем окнам верхнего уровня
  • Сопоставление заголовков окон: Реализация сопоставления подстрок для идентификации целевых приложений
  • Автоматическое закрытие окон: Отправка сообщений WM_CLOSE для закрытия PDF-просмотрщиков, которые могут иметь открытые файлы
  • Предотвращение конфликтов: Обеспечение отсутствия конфликтов доступа к файлам при создании новых PDF-файлов

3. Обработка ошибок и управление ресурсами

Программа демонстрирует лучшие практики для:

  • Управление памятью: Правильное создание и освобождение экземпляров компонентов
  • Безопасность исключений: Использование блоков try-finally для обеспечения очистки ресурсов
  • Обратная связь с пользователем: Предоставление вывода в консоль для информирования пользователей о ходе выполнения программы

Детали технической реализации:

Технология сжатия

Программа создает две версии одного и того же PDF для демонстрации эффективности сжатия FlateDecode:

  • Несжатая версия: Более быстрое время создания, больший размер файла
  • Сжатая версия: Немного более длительное время создания, значительно меньший размер файла

Стратегия обработки шрифтов

Программа использует сложную стратегию выбора шрифтов:

  • Arial Unicode MS: Используется для большинства языков из-за широкой поддержки символов
  • Malgun Gothic Semilight: Специально выбран для отображения корейского текста
  • Встраивание шрифтов: Обеспечивает согласованный внешний вид в различных системах

Совместимость между версиями

Код включает директивы условной компиляции для поддержки как современных, так и устаревших версий Delphi:

  • Поддержка XE2+: Использует модули с пространствами имен (WinApi.Windows, System.SysUtils и т.д.)
  • Поддержка устаревших версий: Возвращается к традиционным именам модулей для старых версий Delphi
  • Интеграция EurekaLog: Дополнительная поддержка обнаружения утечек памяти и отладки

Образовательная ценность

Этот пример HelloWorld служит нескольким образовательным целям:

  • Введение в компонент: Предоставляет мягкое введение в использование HotPDF Component
  • Лучшие практики: Демонстрирует правильное управление ресурсами и обработку ошибок
  • Системная интеграция: Показывает, как интегрировать генерацию PDF с операциями системы Windows
  • Интернационализация: Иллюстрирует обработку многоязычного текста в PDF-документах
  • Соображения производительности: Сравнивает различные стратегии сжатия и их компромиссы

Начало работы

Для запуска этой примерной программы:

  1. Убедитесь, что HotPDF Component правильно установлен в вашей IDE Delphi
  2. Откройте файл проекта HelloWorld.dpr
  3. Скомпилируйте и запустите программу
  4. Программа автоматически создаст два PDF-файла, демонстрирующих различия в сжатии
  5. Изучите сгенерированные файлы, чтобы увидеть многоязычное отображение текста и сравнить размеры файлов

Исходный код

Ниже приведен полный, хорошо документированный исходный код демонстрационной программы HelloWorld:

 


Discover more from losLab Software Development

Subscribe to get the latest posts sent to your email.