Getting Started with Reportlab

Getting Started with Reportlab

当在 PDF 中定位项目时,是根据距离原点的点数进行定位的。这是点,而不是像素、毫米或英寸。

Canvas 对象

showPage() 方法将保存画布的当前页面。实际上这不是必需的,但建议这样做。showPage() 方法还会结束当前页面。如果在调用 showPage() 后绘制另一个字符串或其他元素,则该对象将被绘制到新页面。

默认为 ReportLab 配置中的任意大小,通常为 A4。

看一下 Canvas 的构造函数来看看它需要什么参数:

def __init__(
    self,
    filename,
    pagesize=None,
    bottomup=1,
    pageCompression=None,
    invariant=None,
    verbosity=0,
    encrypt=None,
    cropMarks=None,
    pdfVersion=None,
    enforceColorSpace=None,
):
    pass

这里我们可以看到,我们可以将 pagesize 作为参数传入。pagesize 实际上是宽度和高度的元组(以点为单位)。如果要将原点从默认的左下角更改,则可以将 bottomup 参数设置为 0,这会将原点更改为左上角。

pageCompression 参数默认为零或关闭。基本上,它将告诉 ReportLab 是否压缩每个页面。启用压缩后,文件生成过程会变慢。如果工作需要尽快生成 PDF,那么需要保留默认值零。但是,如果不关心速度,并且希望使用更少的磁盘空间,则可以启用页面压缩。请注意,PDF 中的图像将始终被压缩,因此启用页面压缩的主要用例是当您每页有大量文本或大量矢量图形时。

下一个参数是 verbosity,用于记录级别。设置为 0 时,ReportLab 将允许其他应用程序从标准输出捕获 PDF。如果将其设置为 1,则每次创建 PDF 时都会打印出确认消息。可能会添加其他级别,但在撰写本文时,只有这两个级别被记录下来。

encrypt 参数用于确定 PDF 是否应加密以及如何加密。默认值显然是 None,这意味着根本没有加密。如果传递一个字符串进行加密,该字符串将成为 PDF 的密码。如果想加密 PDF,则需要创建一个 reportlab.lib.pdfencrypt.StandardEncryption 实例并将其传递给 encrypt 参数。

cropMarks 参数可以设置为 TrueFalse 或 object。印刷厂使用裁剪标记来了解页面的裁剪位置。当在 ReportLab 中将 cropMarks 设置为 True 时,页面将比您设置的页面大小大 3 毫米,并在角落添加一些裁剪标记。可以传递给 cropMarks 的对象包含以下参数:borderWidthmarkColormarkWidthmarkLength。该对象允许自定义裁剪标记。

pdfVersion 参数用于确保 PDF 版本大于或等于传入的版本。目前,ReportLab 支持版本 1‑4。

enforceColorSpace 参数用于在 PDF 中强制执行适当的颜色设置。可以将其设置为以下之一:

  • cmyk
  • rgb
  • sep
  • sep_black
  • sep_cmyk

当设置其中一个时,将使用标准 _PDFColorSetter 可调用函数来执行颜色强制。还可以传入可调用函数来执行颜色强制。

posted @ 2024-11-15 16:59  JPL-JUNO  阅读(98)  评论(0)    收藏  举报