|
program Outlines; {$APPTYPE CONSOLE} uses SysUtils, Graphics, Classes, HPDFDoc;
var I: Integer; HPDF: THotPDF; OutlineRoot: THPDFDocOutlineObject; CurrnetOutline: THPDFDocOutlineObject;
begin HPDF:= THotPDF.Create(nil); try HPDF.AutoLaunch := true; // O arquivo PDF será exibido automaticamente HPDF.FileName := 'Outlines.pdf'; HPDF.BeginDoc( true ); // Cria o arquivo PDF com outlines OutlineRoot := HPDF.OutlineRoot; // Obtém a raiz dos outlines HPDF.CurrentPage.TextOut(0, 5, 0, ' Page 1 top'); // Marca o topo da primeira página HPDF.CurrentPage.TextOut(0, 830, 0, ' Page 1 bottom'); // Marca o rodapé da primeira página for I := 2 to 100 do begin CurrnetOutline := OutlineRoot.AddChild( 'Page ' + IntToStr(I - 1) ); // Adiciona um bloco de Outline vinculado a 0,0 na página atual CurrnetOutline.Opened := true; // Este outline está aberto. CurrnetOutline.AddChild( 'Top ' ); // Adiciona um Outline vinculado a 0,0 na página atual CurrnetOutline.AddChild( 'Bottom ', 0, 800 ); // Adiciona um Outline vinculado a 0,800 na página atual HPDF.AddPage; // ADICIONA a próxima página HPDF.CurrentPage.TextOut( 0, 5, 0,' Page ' + IntToStr(I) + ' top' ); // Marca o topo da próxima página HPDF.CurrentPage.TextOut( 0, 830, 0,' Page ' + IntToStr(I) + ' bottom' ); // Marca o rodapé da próxima página end; CurrnetOutline := OutlineRoot.AddChild( 'Page 10 ' ); // ADD last Page CurrnetOutline.AddChild( 'Top ' ); // Adiciona um Outline vinculado a 0,0 na última página CurrnetOutline.AddChild( 'Bottom ', 0, 830 ); // Adiciona um Outline vinculado a 0,830 na última página HPDF.EndDoc; // Fecha o arquivo PDF finally HPDF.Free; end; end. |