TPDFlibPrinter
Печать, VCL, создание документов
Описание
Дает компонентный фасад с привычным жизненным циклом BeginDoc, Canvas, NewPage, EndDoc и Abort, но создает PDF-документ вместо отправки физического задания принтеру
Объявление
Uses PDFlibPDFPrinter;
TPDFlibPrinter = Class(TComponent)Параметры
BeginDoc | Открывает новый PDF-документ и открывает первую страницу через Canvas |
|---|---|
NewPage | Фиксирует текущую канву как PDF-страницу и открывает канву следующей |
EndDoc | Фиксирует финальную страницу и записывает FileName, когда назначение было задано |
Abort | Отбрасывает активное задание, не записывая целевой файл, и сбрасывает компонент в пустой документ |
SetPageSize | Задает портретные размеры бумаги в пунктах PDF до BeginDoc |
Свойства
Canvas | Активный холст VCL между BeginDoc и EndDoc или Abort |
|---|---|
FileName | Необязательный выходной путь PDF; пустое значение оставляет результат только в LibraryInstance |
Title | Заголовок документа, применяемый при старте задания |
DPI | Разрешение координат холста от 24 до 2400, по умолчанию 96 |
CanvasOptions | Режим импорта холста от -1 до 4, по умолчанию векторный режим 2 |
Orientation | poPortrait или poLandscape; альбомная меняет местами настроенные размеры бумаги |
PaperWidth, PaperHeight | Портретные размеры бумаги от 1 до 14400 пунктов PDF |
PageWidth, PageHeight | Активные размеры только для чтения в пикселах холста после конвертации DPI и ориентации |
PageWidthPoints, PageHeightPoints | Активные размеры только для чтения в пунктах PDF |
PageNumber | Текущая страница задачи (нумерация с 1) и ноль в простое |
Printing, Aborted | Состояние жизненного цикла только для чтения |
LibraryInstance | Собственный экземпляр TPDFlib для осмотра или дальнейшей обработки готового PDF |
LastErrorCode | Базовый код ошибки библиотеки из последней PDF-операции |
Пример
Printer := TPDFlibPrinter.Create(nil);
try
Printer.FileName := 'report.pdf';
Printer.BeginDoc;
Printer.Canvas.TextOut(72, 72, 'First page');
Printer.NewPage;
Printer.Canvas.TextOut(72, 72, 'Second page');
Printer.EndDoc;
finally
Printer.Free;
end;Примечания
Свойства конфигурации не могут меняться при активном документе, а неверное использование жизненного цикла вызывает EPDFlibPrinter
Компонент владеет своей библиотекой и холстом, создает независимый документ для каждого задания, сохраняет завершенный документ для дальнейших операций API и никогда не открывает диалог печати и не обращается к спулеру операционной системы
Оберните задачу в try/except и вызывайте Abort, только пока задача активна; провалившиеся внутренние операции конвертации завершают задачу и устанавливают Aborted