THotPDF.BeginDoc Method

 

THotPDF.BeginDoc

THotPDF

 

顶部  上一页  下一页

Creates new document.

 

Delphi 语法:

procedure BeginDoc ( Initial: boolean = false );

 

C++ 语法:

void __fastcall BeginDoc ( bool Initial = false );

 

说明

BeginDoc 开始新的 PDF 文档并创建第一页。常规用法是用默认参数值调用 BeginDoc,然后在 CurrentPage 上绘制

一个 THotPDF 实例可以接连写出任意多个文档。EndDoc 写出文件后会丢弃为它注册的一切:图片、字体、表单字段、书签、文档级 JavaScript、命名目标、页标签、ICC profile、output intent 以及其余资源。已写文档的页面和对象保留在内存中,因此 ValidatePDFUA2Structure 之类的检查在 EndDoc 之后仍然可用,直到下一次 BeginDoc 释放它们。下一个文档因此从干净状态开始,前一个文件的任何内容都不会进入其中

FileName、Version、Compression、PDFACompliance、Author、Title 之类的属性会为下一个文档保留其值,页图层、字体回退链和可变字体轴选择也是如此。在 EndDoc 之后、下一次 BeginDoc 之前注册的任何东西,比如用 AddPDFAOutputIntent 添加的 output intent 或通过 Names 添加的脚本,都归属下一个文档。已写文档的 CurrentPageNumber、PagesCount 和布局诊断在下一次 BeginDoc 之前也保持可读

EndDoc 会清除 UserPassword 和 OwnerPassword。当 ActivateProtection 仍处于开启状态时,请在下一次 BeginDoc 之前重新设置密码;否则 BeginDoc 会抛出异常,而不是写出一个用空密码保护的文档。当某个文档的功能自动抬高了 PDF 版本(比如为 output intent 抬到 PDF 1.4)时,EndDoc 会把它设回 Version 属性的值

 

代码示例


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