问题标签 [reportlab]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
315 浏览

python - 如何在 Reportlab 中找到一行文本的基线?

如何在 Reportlab 中找到一行文本的基线,以便将页面上的其他元素与文本的基线对齐?我正在使用canvas.drawString()这些元素。

0 投票
2 回答
6471 浏览

python - Django 和 Reportlab 问题

我写了这个小的 Django 视图来返回 pdf。

还有我的问题:

  • pdf 中未正确显示 utf-8 字符。
  • 如何包含图像?
  • 如何包含一个非常基本的 html,例如:

.

0 投票
1 回答
1470 浏览

python - python reportlab - registerFont - django - 一段时间后字体不可用

我想知道注册字体以在reportlab中使用的最佳时间是什么时候。我将以下行添加到我的 settings.py 中:

在此调用之后,字体可用于 pdf 生成。但它发生几天后字体不再可用,我必须重新启动 django 应用程序,这导致重新注册字体。

我已经尝试过的一种方法是在每次 pdf 生成调用之前注册字体,但由于每次调用 3-5 次调用都会崩溃,因此这种方法不起作用。

我只想知道 settings.py 是否是为 reportlab 注册字体的正确位置,如果是,那么几天后字体不再可用的原因是什么!?

- 编辑 -

实际上我们发现reportlab 和mod-wsgi 存在一些问题。我们切换到 fast-cgi,再也没有看到这个问题。

0 投票
1 回答
7668 浏览

python - 添加用于 ReportLab 的字体

我正在尝试向 python ReportLab 添加一种字体,以便我可以将它用于功能。该功能是使用canvas.Canvas在PDF中绘制一堆文本,没什么复杂的,但是我需要为布局问题添加一个固定宽度的字体。

当我尝试使用我能找到的少量信息注册字体时,这似乎奏效了。但是当我试图从我的 Canvas 对象中调用 .addFont('fontname') 时,我不断得到

“PDFDocument 实例没有属性‘addFont’”

功能只是没有实现吗?我如何访问 .getAvailableFonts 中列出的 10 种左右默认字体以外的字体?谢谢。

我正在尝试实现的一些示例代码:

要注册字体,我试过了

'ghettomarquee.ttf' 只是我躺在身边的一种随机字体。

0 投票
3 回答
5078 浏览

python - 使用 reportlab 在现有 PDF 上添加文本

我有兴趣以编程方式填写现有的 PDF 表单。我真正需要做的就是从用户输入中提取信息,然后将适当的文本放在适当位置的现有 PDF 上。我已经可以通过将同一张纸送入打印机两次来使用reportlab 做到这一点,但这真的让我误会了。

在添加用户输入的文本之前,我很想亲自对每个现有的 PDF 进行逆向工程并自己绘制每一行和每个字符,但我想检查是否有一种简单的方法来获取现有的 PDF 并将其设置为一些额外文本的背景。我真的更喜欢使用 python,因为它是我唯一觉得舒服的语言。

我也意识到我可以只扫描文档本身并将生成的光栅图像用作背景,但我更喜欢矢量图的精度。

似乎ReportLab 有一个具有此功能的商业产品,而我正在寻找的特定功能就在其中(copyPages) - 但为非营利用途的单一、简单功能支付 4 位数产品似乎有点过头了.

0 投票
2 回答
6663 浏览

python - ReportLab 中的动态间隔

我正在使用具有动态内容的鸭嘴兽自动生成 PDF 文件。

这意味着文本内容的长度(直接位于 pdf 文件的底部)可能会发生变化。

但是,如果内容太长,可能会发生分页。这是因为我使用“静态”垫片:

因为我总是希望只有一页,所以我需要以某种方式动态设置 Spacer 的高度,以便 Spacer 将页面上剩余空间的“其余部分”作为其高度。

现在,我如何获得留在页面上的“剩余”高度?

0 投票
3 回答
876 浏览

python - 使用 Reportlab 复制此表单的方法是否正确?

我需要使用 Python/reportlab 生成此处看到的表单。

http://www.flickr.com/photos/49740282@N06/4563137758/sizes/o/

我试图通过为顶部的标题创建一个自定义的可流动对象(绘制框),然后为下面的珠宝表创建一个可流动的表格。此示例中显示为 JEWELRY 表的内容可能是多个表。我无法让我绘制的标题“流动”。它被绘制了,但是我的表格数据覆盖了它而不是出现在它下面。

这是我在reportlab 的第一个项目。在我真正开始调试之前,我想从有报告实验室经验的人那里知道我的方法在这里是否正确。谢谢!

0 投票
1 回答
3989 浏览

pdf - 动态生成的 PDF 文件可在除 Adob​​e Reader 之外的大多数阅读器中使用

我正在尝试从用户输入动态生成 PDF,我基本上打印用户输入并将其覆盖在我没有创建的现有 PDF 上。

它有效,但有一个主要例外。Adobe Reader 在 Windows 或 Linux 上无法正确阅读。我手机上的 QuickOffice 也不读取它。所以我想我会追踪我创建文件的路径 -

1 - 使用 LZW 编码的 Adob​​e Distiller 制作的背景 PDF 1.2的原始 PDF 。
我没有做这个。

2 - 使用 Ghostscript 制作的背景PDF 1.4 的 PDF。
我在上面使用了 pdf2ps 然后 ps2pdf 来剥离 LZW,以便 reportlab 和 pyPDF 库能够识别它。请注意,此文件在 Adob​​e Reader 中看起来“模糊”,就像扫描错误,但在其他阅读器中看起来不错。

3 -用户输入文本的 PDF 格式,可与
用户输入的 Reportlab 制作的背景 PDF 1.3 相结合。在我尝试过的每个阅读器中都可以正常打开并且看起来不错。

4 - 使用 PyPDF在 2 和 3 上的功能完成的 PDF PDF 1.3。
mergePage()

无法打开:
Adob​​e Reader for Windows
Adob​​e Reader for Linux
QuickOffice for Android

在以下位置完美打开:
Google Docs' PDF 查看器 on the web
evince for linux
ghostscript viewer for linux Foxit reader for Windows
Preview for Mac

是否有我应该知道的已知问题?我不确切知道“flate”是什么,但从互联网上我了解到它是 LZW 的某种开源替代品,用于 PDF 压缩?这会导致我的问题吗?如果是这样,是否有任何库可以用来修复代码中的原因?

0 投票
2 回答
1684 浏览

python - Reportlab 'LayoutError' 处理和调试

我一直在使用 reportlab 处理一些复杂的 PDF 输出。这些通常都很好,但在某些情况下我仍然会得到 LayoutErrors - 这些通常是因为 Flowables 在某些时候太大了。

事实证明,调试这些非常困难,因为我通常没有比这样的信息更多的信息;

这真的没那么有用。我最想知道的是这种事情的最佳调试和测试策略。

  • 有没有办法可以查看损坏的 PDF?即呈现布局错误,因此我可以更轻松地看到发生了什么。
  • 有没有办法可以在 reportlab 中添加一个钩子来更好地处理这些错误?而不是仅仅失败整个PDF?
  • 有关一般改进、测试和处理此类问题的任何其他建议。

我没有一个特定的例子,所以它是更一般的建议,我已经解决了上面的异常,但它有点通过反复试验(阅读;猜测并看看会发生什么)。

0 投票
1 回答
446 浏览

python - Python - Reportlab:使用自定义字体时出错

我使用reportlab 框架来创建pdf。我还在我的 pdf 文件中使用了一种名为“3of9”的自定义字体。现在,有时我会收到以下错误:

IOError: Cannot open resource "/usr/lib/python2.6/site-packages/reportlab/fonts/LeERC___.AFM", while looking for faceName='3of9'

这不是每次都发生,而是经常发生。在大多数情况下,一切正常,所以我不知道为什么会出现错误。

有谁知道如何解决这个问题?