PDF 工具提示使用 Python

通过添加不可见按钮为搜索文本添加工具提示

此代码演示了如何使用 Aspose.PDF 为 PDF 文档中的特定文本片段添加工具提示。当鼠标光标悬停在相应文本上时,将显示工具提示。

以下代码片段将向您展示如何实现此功能:


    import aspose.pdf as ap

    document = ap.Document()
    document.pages.add().paragraphs.add(
        ap.text.TextFragment("将鼠标光标移到这里以显示工具提示")
    )
    document.pages[1].paragraphs.add(
        ap.text.TextFragment(
            "将鼠标光标移到这里以显示一个非常长的工具提示"
        )
    )
    document.save(output_pdf)

    # 打开带有文本的文档
    document = ap.Document(output_pdf)
    # 创建 TextAbsorber 对象以查找所有匹配正则表达式的短语
    absorber = ap.text.TextFragmentAbsorber(
        "将鼠标光标移到这里以显示工具提示"
    )
    # 接受文档页面的吸收器
    document.pages.accept(absorber)
    # 获取提取的文本片段
    text_fragments = absorber.text_fragments

    # 循环遍历片段
    for fragment in text_fragments:
        # 在文本片段位置创建不可见按钮
        field = ap.forms.ButtonField(fragment.page, fragment.rectangle)
        # alternate_name 值将在查看器应用程序中显示为工具提示
        field.alternate_name = "文本的工具提示。"
        # 将按钮字段添加到文档
        document.form.add(field)

    # 接下来是非常长的工具提示的示例
    absorber = ap.text.TextFragmentAbsorber(
        "将鼠标光标移到这里以显示一个非常长的工具提示"
    )
    document.pages.accept(absorber)
    text_fragments = absorber.text_fragments

    for fragment in text_fragments:
        field = ap.forms.ButtonField(fragment.page, fragment.rectangle)
        # 设置非常长的文本
        field.alternate_name = (
            "Lorem ipsum dolor sit amet, consectetur adipiscing elit,"
            " sed do eiusmod tempor incididunt ut labore et dolore magna"
            " aliqua. Ut enim ad minim veniam, quis nostrud exercitation"
            " ullamco laboris nisi ut aliquip ex ea commodo consequat."
            " Duis aute irure dolor in reprehenderit in voluptate velit"
            " esse cillum dolore eu fugiat nulla pariatur. Excepteur sint"
            " occaecat cupidatat non proident, sunt in culpa qui officia"
            " deserunt mollit anim id est laborum."
        )
        document.form.add(field)

    # 保存文档
    document.save(output_pdf)

创建隐藏文本块并在鼠标悬停时显示

这个Python代码片段展示了如何在PDF文档中添加浮动文本,当鼠标光标悬停在特定区域时显示。

首先,创建一个新的PDF文档,并向其中添加包含文本“将鼠标光标移到这里以显示浮动文本”的段落。然后保存文档。

接下来,重新打开保存的文档,并创建一个TextAbsorber对象来查找之前添加的文本片段。然后使用这个文本片段来定义浮动文本字段的位置和特征。

创建一个TextBoxField对象来表示浮动文本字段,并相应地设置其属性,如位置、值、只读状态和可见性。此外,为字段分配唯一名称和外观特征。

将浮动文本字段添加到文档的表单中,并在原始文本片段的位置创建一个不可见的按钮字段。 HideAction 事件被分配给按钮字段,指定当鼠标光标进入其附近时,浮动文本字段应出现,并在光标退出时消失。

最后,将按钮字段添加到文档的表单中,并保存修改后的文档。

此代码片段提供了一种使用 Aspose.PDF for Python 在 PDF 文档中创建交互式浮动文本元素的方法。


    import aspose.pdf as ap

    document = ap.Document()
    document.pages.add().paragraphs.add(
        ap.text.TextFragment("将鼠标光标移动到此处以显示浮动文本")
    )
    document.save(output_pdf)

    # 打开带有文本的文档
    document = ap.Document(output_pdf)
    # 创建 TextAbsorber 对象以查找与正则表达式匹配的所有短语
    absorber = ap.text.TextFragmentAbsorber(
        "将鼠标光标移动到此处以显示浮动文本"
    )
    # 接受文档页面的吸收器
    document.pages.accept(absorber)
    # 获取第一个提取的文本片段
    text_fragments = absorber.text_fragments
    fragment = text_fragments[1]

    # 在页面的指定矩形中为浮动文本创建隐藏文本字段
    floating_field = ap.forms.TextBoxField(
        fragment.page, ap.Rectangle(100.0, 700.0, 220.0, 740.0, False)
    )
    # 设置要显示的文本作为字段值
    floating_field.value = '这是“浮动文本字段”。'
    # 我们建议在此方案中将字段设置为“只读”
    floating_field.read_only = True
    # 设置“隐藏”标志以使字段在文档打开时不可见
    floating_field.flags |= ap.annotations.AnnotationFlags.HIDDEN

    # 设置唯一字段名称不是必须的,但允许
    floating_field.partial_name = "FloatingField_1"

    # 设置字段外观特征不是必须的,但会更好
    floating_field.default_appearance = ap.annotations.DefaultAppearance(
        "Helv", 10, ap.Color.blue.to_rgb()
    )
    floating_field.characteristics.background = ap.Color.light_blue.to_rgb()
    floating_field.characteristics.border = ap.Color.dark_blue.to_rgb()
    floating_field.border = ap.annotations.Border(floating_field)
    floating_field.border.width = 1
    floating_field.multiline = True

    # 将文本字段添加到文档中
    document.form.add(floating_field)
    # 在文本片段位置创建不可见按钮
    button_field = ap.forms.ButtonField(fragment.page, fragment.rectangle)
    # 为指定字段(注释)和不可见性标志创建新的隐藏动作。
    # (如果之前指定了名称,您也可以通过名称引用浮动字段。)
    # 在不可见按钮字段上添加鼠标进入/退出动作

    button_field.actions.on_enter = ap.annotations.HideAction(
        floating_field.partial_name, False
    )
    button_field.actions.on_exit = ap.annotations.HideAction(
        floating_field.partial_name
    )

    # 将按钮字段添加到文档中
    document.form.add(button_field)

    # 保存文档
    document.save(output_pdf)