You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook中显示ReportLab生成的PDF页面?含Colab疑问

在Jupyter Notebook/Google Colab中显示ReportLab生成的PDF

一、Jupyter Notebook解决方案

你可以通过两种方式实现需求:将PDF转为图片显示,或者直接嵌入完整可交互的PDF。

方法1:转为图片显示(修复pdf2image报错问题)

首先确保安装所有依赖:

pip install reportlab pdf2image
# Linux用户额外安装poppler:sudo apt-get install poppler-utils
# macOS用户:brew install poppler
# Windows用户:从官方源下载poppler并添加到系统PATH

修正后的代码(无需存本地文件,用内存流避免文件读写同步问题):

from reportlab.platypus import SimpleDocTemplate, Paragraph
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.pagesizes import A4
from io import BytesIO
from pdf2image import convert_from_bytes
from IPython.display import display

# 生成PDF到内存
pdf_bytes = BytesIO()
pdf = SimpleDocTemplate(pdf_bytes, pagesize=A4, leftMargin=72, rightMargin=72, topMargin=72, bottomMargin=72)

# 构建PDF内容
styles = getSampleStyleSheet()
pdf_elements_list = [Paragraph("测试ReportLab生成的PDF", styles['Title'])]
pdf_elements_list.append(Paragraph("这是一段示例文本内容。", styles['BodyText']))

pdf.build(pdf_elements_list)
pdf_bytes.seek(0)  # 重置内存流指针到起始位置

# 转换为图片并显示第一页
images = convert_from_bytes(pdf_bytes.getvalue(), dpi=96)
display(images[0])

方法2:直接嵌入完整PDF(推荐)

无需转换图片,直接在单元格中显示可翻页的完整PDF:

from IPython.display import display_pdf

pdf_bytes.seek(0)
display_pdf(pdf_bytes.getvalue(), raw=True)

二、Google Colab中的复现

完全可以实现,只需先安装Colab专属依赖(poppler需要通过apt安装):

!apt-get install -y poppler-utils
!pip install reportlab pdf2image

之后直接使用上面任意一种方法即可,不管是转图片还是嵌入完整PDF,都能在Colab单元格中正常渲染显示。

内容的提问来源于stack exchange,提问作者Edah Šahinović

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:17:08