THotPDF.BeginDoc Method

 

THotPDF.BeginDoc

THotPDF

 

Вверх  Назад  Далее

Creates new document.

 

Delphi syntax:

procedure BeginDoc ( Initial: boolean = false );

 

C++ syntax:

void __fastcall BeginDoc ( bool Initial = false );

 

Описание

BeginDoc начинает новый PDF-документ и создаёт первую страницу. В обычном использовании вызовите BeginDoc со значением параметра по умолчанию, затем рисуйте на CurrentPage

Один экземпляр THotPDF может записывать сколько угодно документов, один за другим. EndDoc записывает файл, а затем сбрасывает всё, что было для него зарегистрировано: изображения, шрифты, поля форм, outlines, document JavaScript, именованные назначения, метки страниц, ICC-профили, output intents и остальные ресурсы. Страницы и объекты записанного документа остаются в памяти, поэтому проверки вроде ValidatePDFUA2Structure продолжают работать после EndDoc, пока следующий BeginDoc их не освободит. Следующий документ поэтому стартует чистым, и ни один контент предыдущего файла в него не попадает

Свойства вроде FileName, Version, Compression, PDFACompliance, Author и Title сохраняют значения для следующего документа, как и слои страниц, цепочки font fallback и выбранные оси variable-шрифтов. Всё, что зарегистрировано после EndDoc и до следующего BeginDoc, — например output intent, добавленный через AddPDFAOutputIntent, или скрипт, добавленный через Names, — относится к следующему документу. CurrentPageNumber, PagesCount и диагностика раскладки записанного документа тоже остаются читаемыми до следующего BeginDoc

EndDoc очищает UserPassword и OwnerPassword. Когда ActivateProtection всё ещё включён, задайте пароли заново до следующего BeginDoc; иначе BeginDoc бросит исключение вместо записи документа, защищённого пустыми паролями. Когда какая-то возможность документа автоматически подняла PDF-версию (например до PDF 1.4 ради output intent), EndDoc возвращает её к значению свойства Version

 

Code Example


HPDF := THotPDF.Create( nil );
try
  HPDF.FileName := '.\Output.pdf';
  HPDF.BeginDoc;   // Start PDF document creation
  HPDF.CurrentPage.TextOut( 100, 100, 0, 'Hello World!' );
  HPDF.EndDoc;     // Finish and save PDF document

  HPDF.FileName := '.\Second.pdf';
  HPDF.BeginDoc;   // Same instance, new independent document
  HPDF.CurrentPage.TextOut( 100, 100, 0, 'Second document' );
  HPDF.EndDoc;
finally
  HPDF.Free;
end;

 

См. также: EndDoc