• delphi llPDFLib 添加大纲(书签)


    llPDFLib 添加大纲(书签)

    PDF文档可以选择在屏幕上显示文档大纲,允许用户以交互方式从文档的一部分导航到另一部分。大纲由大纲项(有时称为书签)的树状层次结构组成,作为“可视目录”向用户显示文档的结构。

    用户可以通过鼠标单击以交互方式打开和关闭单个项目。当一个项目打开时,它在层次结构中的直接子项目将在屏幕上可见; 每个子级可以依次打开或关闭,有选择地显示或隐藏层次结构的其他部分。当一个项目关闭时,层次结构中的所有子项都将隐藏。用鼠标单击任何可见项目的文本会激活该项目,使查看器应用程序跳转到与该项关联的目标。

    属性和方法

    TPDFDocument.Outlines

    property Outlines: TPDFOutlines;
    

    大纲管理器,允许在生成的文件中操作此对象。

    TPDFDocument.Actions

    property Actions: TPDFActions;
    

    操作管理器,在对象中创建所有操作时使用。

    TPDFOutlines.Add

    function Add(Node: TPDFOutlineNode; Title: string; Action: TPDFAction; Charset: TFontCharset = ANSI_CHARSET): TPDFOutlineNode;
    

    将新的树节点添加到大纲项的树中。并返回已添加的节点。

    参数

    Node 该节点被添加为 Node 的最后一个同级。

    Title 这一行,将在查看器的大纲树中可见。

    Action 操作,该操作将在单击添加的大纲项之后执行。

    Charset 用于ansi字符串。 默认值 ANSI_CHARSET

    返回值

    添加的新节点。

    TPDFOutlines.AddChild

    function AddChild(Node: TPDFOutlineNode; Title: string; Action: TPDFAction; Charset: TFontCharset = ANSI_CHARSET): TPDFOutlineNode;
    

    将新的树节点添加到大纲项的树中。并返回已添加的节点。

    参数

    Node 该节点被添加为Node的子节点。 它被添加到Node的子节点列表的末尾。

    Title 这一行,将在查看器的大纲树中可见。

    Action 操作,该操作将在单击添加的大纲项之后执行。

    Charset 用于ansi字符串。 默认值 ANSI_CHARSET

    返回值

    添加的新节点。

    TPDFOutlineNode.Expanded

    property Expanded: Boolean;
    

    确定打开PDF文档时是否展开节点。

    TPDFGotoPageAction.Create

    constructor Create(Actions: TPDFActions; PageIndex: Integer; TopOffset: Integer; NoChangeZoom: Boolean);
    

    创建并初始化TPDFGotopageAction的实例。

    参数

    Actions 该对象负责管理所有PDFActions

    PageIndex 要转到的页面的索引。

    TopOffset 将在转换期间执行的相对于页面顶部的偏移量。

    NoChangeZoom 指定是否更改要进行转换的页面的缩放。

    例子

    添加书签

    uses llPDFDocument, llPDFAction, llPDFOutline;
    
    procedure TForm1.Button9Click(Sender: TObject);
    var
      Pdf: TPDFDocument;
      Root: TPDFOutlineNode;
    begin
      Pdf := TPDFDocument.Create(nil);
      try
        //创建PDF文档
        Pdf.AutoLaunch := True;
        Pdf.FileName := 'C:\Users\Administrator\Desktop\ceshi.pdf';
        Pdf.BeginDoc;
        //添加第一页
        with Pdf.CurrentPage do
        begin
          SetActiveFont('宋体', [fsBold], 20, GB2312_CHARSET);
          TextOut(100, 100, 0, '第一页标题');
          TextOut(100, 200, 0, '第一页内容');
        end;
        //添加第二页
        Pdf.NewPage;
        with Pdf.CurrentPage do
        begin
          SetActiveFont('宋体', [fsBold], 20, GB2312_CHARSET);
          TextOut(100, 100, 0, '第二页标题');
          TextOut(100, 200, 0, '第二页内容');
        end;
        //添加第三页
        Pdf.NewPage;
        with Pdf.CurrentPage do
        begin
          SetActiveFont('宋体', [fsBold], 20, GB2312_CHARSET);
          TextOut(100, 100, 0, '第三页标题');
          TextOut(100, 200, 0, '第三页内容');
        end;
        //添加书签
        Root := Pdf.Outlines.Add(nil, '文档开始',
          TPDFGoToPageAction.Create(Pdf.Actions, 0, 0, True), GB2312_CHARSET);
        Pdf.Outlines.AddChild(Root, '第一页标题',
          TPDFGoToPageAction.Create(Pdf.Actions, 0, 100, True), GB2312_CHARSET);
        Pdf.Outlines.AddChild(Root, '第二页标题',
          TPDFGoToPageAction.Create(Pdf.Actions, 1, 100, True), GB2312_CHARSET);
        Pdf.Outlines.AddChild(Root, '第三页标题',
          TPDFGoToPageAction.Create(Pdf.Actions, 2, 100, True), GB2312_CHARSET);
        //展开书签
        Root.Expanded := True;
        Pdf.EndDoc;
      finally
        Pdf.Free;
      end;
    end;
    
  • 相关阅读:
    VBScript把json字符串解析成json对象的2个方法
    vue+php接口
    td标签 内容垂直、水平居中
    win7 安装 IIS 配置ASP 【原创】
    PS 实用技巧
    通信原理实践(一)——音频信号处理
    德飞莱STM32单片机学习(一)——下载环境搭建
    电赛总结(四)——波形发生芯片总结之AD9854
    电赛总结(四)——波形发生芯片总结之AD9851
    电赛总结(四)——波形发生芯片总结之AD9834
  • 原文地址:https://www.cnblogs.com/txgh/p/15964621.html
Copyright © 2020-2023  润新知