Python使用Reportlab处理PDF数据 - 创建特殊功能

134 篇文章 14 订阅

生成PDF时,ReportLab可以使用几个特殊功能。 如:

  • 文件注释
  • 书签
  • 页面过渡
  • 加密
  • 交互式表格

文件注释

您也可以使用ReportLab将元数据添加到PDF中。 这可以通过调用以下不言自明的canvas方法来完成:

  • setAuthor()
  • setTitle()
  • setSubject()

您也可以使用ReportLab将元数据添加到PDF中。 这可以通过调用以下不言自明的canvas方法来完成:

  • setAuthor()
  • setTitle()
  • setSubject()

文件注释不可见。 您只能通过打开“文档属性”对话框来查看它们,该对话框可在Adobe Reader中的“文件”->“属性”菜单项中找到。 这是向存档软件或其他可能需要使用PDF的软件提供有关文档的简单标准信息的好方法。

让我们看一个简单的演示:

代码略

所有这些都设置了PDF的作者,标题和主题。 如果在Adobe Reader中打开PDF并转到“文件”->“属性”,则应看到类似以下内容:

书签

ReportLab支持将书签添加到PDF。 书签是一个内部超链接,您可以单击该超链接来浏览文档。 ReportLab仅支持从文档的一部分跳到另一部分的功能。 跳转后,您还可以在文档阅读器中控制缩放级别。 要将书签添加到文档中,您将需要使用bookmarkPage画布方法。 为了使书签可见可见,您还需要调用addOutlineEntry方法。

bookmarkPage画布方法标记如下所示:

canvas.bookmarkPage(name,
                    fit='Fit',
                    left=None,
                    top=None,
                    bottom=None,
                    right=None,
                    zoom
                    )

bookmarkPage画布方法的默认设置是将页面本身定义为跳转目标。 默认情况下,它将缩放整个页面以适合屏幕。

让我们看一个创建书签的简单示例:

代码略

在这里,我们创建画布对象并绘制一个字符串。 然后,我们添加一个书签并调用showPage方法。 这将有效地创建一个分页符,以便对画布进行的任何其他图形调用都将在下一页上进行。 因此,我们在第2页上绘制了一个新字符串并添加了另一个书签。 最后,我们通过上述的addOutlineEntry方法将书签添加到PDF的轮廓中。 addOutlineEntry方法标记如下:

canvas.addOutlineEntry(self, title, key, level=0, closed=None)

在我们的示例中,我们仅传递标题和key。 key必须与我们之前在文档中添加的书签的名称匹配。 运行此代码时,您将在PDF的导航侧栏中看到类似以下内容的内容:

大纲树

ReportLab将导航侧栏称为大纲树。 当您要将大纲条目添加到大纲树时,需要使用前面提到的addOutlineEntry方法。 许多用户喜欢使用侧边栏浏览文档,因此了解如何向该侧边栏添加条目可能很有价值。

正如我们刚学到的,可以将四个参数传递给addOutlineEntry方法:title,key,level和close。 title参数是将出现在导航窗格中的标题。 key是您在创建书签时使用的文档中的唯一字符串。 level参数默认为零,这是最高级别。 您一次只能下降一个级别。 如果您尝试下降多个级别,则会引发错误。 最后,closed参数告诉导航窗格是应该关闭还是打开书签。

页面过渡

ReportLab支持页面过渡的概念,这是一种有限形式的过渡,您可以在幻灯片之间切换时将其添加到Microsoft Powerpoint。 在这种情况下,仅当您将过渡设置为全屏模式时,才能在Adobe Reader中激活过渡。 这是您可以应用的过渡列表:

PageTransitionEffects = {
    'Split': [direction_arg, motion_arg],
    'Blinds': [dimension_arg],
    'Box': [motion_arg],
    'Wipe' : [direction_arg],
    'Dissolve' : [],
    'Glitter':[direction_arg]
    }

如您所见,您有六个可供选择。 如上所示,您可以应用方向自变量或运动自变量或两者都应用。 这是ReportLab文档的清单,显示了这些参数的有效值:

direction_arg = [0,90,180,270]
dimension_arg = ['H', 'V']

如果要向PDF添加过渡效果,则需要调用setPageTransition canvas方法,如下所示:

canvas.setPageTransition(self, effectname=None, duration=1,
    direction=0, dimension='H', motion='I')

让我们创建一个简单的示例:

代码略

详情参阅 - 亚图跨际

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值