跳转到主要内容

ReportLab的编程包装器。

项目描述

这是一个ReportLab的包装器,允许轻松创建PDF文档

from io import BytesIO
from pdfdocument.document import PDFDocument

def say_hello():
    f = BytesIO()
    pdf = PDFDocument(f)
    pdf.init_report()
    pdf.h1('Hello World')
    pdf.p('Creating PDFs made easy.')
    pdf.generate()
    return f.getvalue()

信件和报告

PDFDocument提供了两种不同的PDF模板,信件和报告。唯一的区别是第一页的布局:信件在顶部有一个额外的地址框架,主要内容区域较小。

使用方法如下

pdf.init_report()
# Or:
pdf.init_letter()

信件使用9点字体作为基本大小生成默认样式,报告使用8点。这可以通过再次调用 pdf.generate_style 来更改。

还存在一种特殊的报告类型,即机密报告,唯一的区别在于使用红色的十字架在第一页顶部标记机密性,并在背景中使用水印。

样式

pdf.generate_style 的调用生成一组预定义的样式。(是的,它确实做了!)这包括以下样式;此列表既不是详尽的也不是承诺

  • pdf.style.normal

  • pdf.style.heading1

  • pdf.style.heading2

  • pdf.style.heading3

  • pdf.style.small

  • pdf.style.bold

  • pdf.style.right

  • pdf.style.indented

  • pdf.style.paragraph

  • pdf.style.table

大多数情况下,您不会直接使用这些属性,除非是表格。几乎所有的样式都有便利方法,如下一章所述。

内容

所有传递给以下方法的全部内容默认都会被转义。ReportLab支持类似HTML的标记语言,如果您想直接使用它,您必须只使用pdf.p_markup或者手动创建pdfdocument.document.MarkupParagraph实例。

标题

pdf.h1pdf.h2pdf.h3

段落

pdf.ppdf.p_markuppdf.smallpdf.smaller

无序列表

pdf.ul

迷你HTML

pdf.mini_html

各种元素

pdf.hrpdf.hr_minipdf.spacerpdf.pagebreakpdf.start_keeptogetherpdf.end_keeptogetherpdf.next_frame

表格

pdf.tablepdf.bottom_table

画布方法

画布方法直接与画布交互,而不是与Platypus对象交互。它们主要用于信封函数中。您通常直接使用ReportLab的画布方法,只有在特殊情况下才会使用以下方法。

pdf.confidentialpdf.draw_watermarkpdf.draw_svg

附加方法

pdf.appendpdf.restart

Django集成

PDFDocument在Django视图中有一些生成PDF的辅助方法,最著名的是pdfdocument.utils.pdf_response

from pdfdocument.utils import pdf_response

def pdf_view(request):
    pdf, response = pdf_response('filename_without_extension')
    # ... more code

    pdf.generate()
    return response

SVG支持使用Dinu Gherman的svglib。它可以在PyPI上找到:<http://pypi.python.org/pypi/svglib/>

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

pdfdocument-4.0.0.tar.gz (11.2 kB 查看哈希值)

上传时间

构建分发

pdfdocument-4.0.0-py2.py3-none-any.whl (10.2 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面