• delphi SynPDF 添加大纲(书签)


    SynPDF 添加大纲(书签)

    属性和方法

    TPdfDocument.UseOutlines

    property UseOutlines: boolean;
    

    用于指定PDF文档是否将使用大纲。

    TPdfDocument.OutlineRoot

    property OutlineRoot: TPdfOutlineRoot;
    

    PDF文档的大纲。只读属性。

    在使用OutlineRoot属性之前,必须将UseOutlines设置为True

    TPdfDocument.CreateOutline

    function CreateOutline(const Title: string; Level: integer; TopPosition: Single): TPdfOutlineEntry;
    

    在当前页面的指定位置创建大纲节点。

    参数

    Title 标题。

    Level 级别。

    TopPosition 相对于页面底部的偏移量。

    返回值

    添加的新节点。

    大纲树节点是根据Level级别创建的(Level 为0时是根节点),它被添加到相同级别节点列表的末尾。

    TPdfOutlineEntry.Parent

    property Parent: TPdfOutlineEntry;
    

    父大纲节点。

    TPdfOutlineEntry.Next

    property Next: TPdfOutlineEntry;
    

    下一个大纲节点。

    TPdfOutlineEntry.Prev

    property Prev: TPdfOutlineEntry;
    

    上一个大纲节点。

    TPdfOutlineEntry.First

    property First: TPdfOutlineEntry;
    

    第一个大纲节点。

    TPdfOutlineEntry.Last

    property Last: TPdfOutlineEntry;
    

    最后一个大纲节点。

    TPdfOutlineEntry.Opened

    property Opened: boolean;
    

    是否展开节点。

    例子

    添加书签

    uses SynPdf;
    
    procedure TForm1.Button6Click(Sender: TObject);
    var
      Pdf: TPdfDocumentGDI;
    begin
      //创建PDF文档
      Pdf := TPdfDocumentGDI.Create(True);
      //使用书签,需要设置Create参数为True或者UseOutlines设置为True
      Pdf.UseOutlines := True;
      try
        Pdf.AddPage;
        //添加总书签(Level为级别,从0开始,TopPosition为位置,从页面底开始)
        Pdf.CreateOutline('文档开始', 0, Pdf.Canvas.Page.PageHeight);
        //添加第一页
        with Pdf.VCLCanvas do
        begin
          Font.Name := '宋体';
          Font.Size := 20;
          TextOut(100, 100, '第一页标题');
          TextOut(100, 200, '第一页内容');
          Pdf.CreateOutline('第一页标题', 1, Pdf.Canvas.Page.PageHeight - 100);
        end;
        //添加第二页
        Pdf.AddPage;
        with Pdf.VCLCanvas do
        begin
          Font.Name := '宋体';
          Font.Size := 20;
          TextOut(100, 100, '第二页标题');
          TextOut(100, 200, '第二页内容');
          Pdf.CreateOutline('第二页标题', 1, Pdf.Canvas.Page.PageHeight - 100);
        end;
        //添加第三页
        Pdf.AddPage;
        with Pdf.VCLCanvas do
        begin
          Font.Name := '宋体';
          Font.Size := 20;
          TextOut(100, 100, '第三页标题');
          TextOut(100, 200, '第三页内容');
          Pdf.CreateOutline('第三页标题', 1, Pdf.Canvas.Page.PageHeight - 100);
        end;
        //展开书签
        Pdf.OutlineRoot.First.Opened := True;
        Pdf.SaveToFile('C:\Users\Administrator\Desktop\ceshi.pdf');
      finally
        Pdf.Free;
      end;
    end;
    
  • 相关阅读:
    git把dev部分提交过的内容合并到master
    shell命令修改文件内容
    js时间格式化
    js判断对象是否为空
    JS数组遍历方法
    批量修改文件后缀
    curl实现put请求
    lumen伪静态路由设置示例
    nginx client_body_buffer_size
    nginx模块开发
  • 原文地址:https://www.cnblogs.com/txgh/p/16158698.html
Copyright © 2020-2023  润新知