问题标签 [platypus]

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 回答
2385 浏览

python - 使用 ReportLab.platypus 渲染后,是否可以获得 Flowable 的坐标位置?

我的主要目标是让页面上的所有 Image flowables 就像它们是可点击的链接一样。为此,我将创建一个 canvas.linkRect() 并将其放置在渲染的图像上。这是我如何使用 canvas.linkRect() 的示例:

在查看 BaseDocTemplate 类后,我发现了一个名为 afterFlowable(self, flowable) 的方法。我覆盖了该方法并在传入的 flowable 上调用了 dir(),结果如下:

它有一个 width 和 height 属性,我可以用它来确定 linkRect() 应该有多大(x2 和 y2 应该是多少),但没有关于 flowable 开始位置的信息(x1 和 y1 应该是什么?)。

如果一切都失败了,我想以某种方式将 Frame 和 Image Flowable 配对在一起,因为 Frame 具有我想要创建 linkRect() 的信息。但是,除了必须确切知道将这些框架放置在哪里之外,要知道何时以及如何使用其各自的 Flowable 列表来订购框架列表似乎很麻烦。是否有另一种方法可以实现这一目标,还是不可能?

谢谢!

0 投票
2 回答
852 浏览

python - 将 QrCodeWidget(或 PlotArea)与鸭嘴兽一起使用

我的 django 应用程序正在使用多帧 reportlab pdf 报告,我想添加一些条形码/二维码。

我遇到的问题是我添加到布局中的每个对象都必须是 Flowable。所以问题是将 PlotArea(QrCodeWidget 的母类)转换为 Flowable。

如果我们在这里有答案,如果我们将 QrCodeWidget 添加为

0 投票
1 回答
9559 浏览

python - 如何在 ReportLab 鸭嘴兽中使用 BaseDocTemplate 呈现多个页面?

我是 ReportLab 的新手,并尝试使用 Platypus 生成 PDF,其中每个部分都有不同的页面模板(以及不同的页眉和页脚)。如何在不使用 SimpleDocTemplate 的情况下使用 BaseDocTemplate 执行此操作?

我正在尝试下面的代码,但我无法显示要显示的框架的内容,除了我直接在画布上绘制的第一页。为简洁起见,我删除了每个 PageTemplate 的额外格式以及页眉和页脚代码。

0 投票
1 回答
793 浏览

python - Py ReportLab 追加鸭嘴兽

我试图在 Reportlab 中建立一个目录(但失败了......并且没有坚持太多,而且似乎比我需要的更多......也许我将来会尝试新的......) .

现在我很高兴有一些简单的文本作为文档的指南(该文档主要由一些 Pandas 生成的编号网格组成。我只是喜欢在开头有一个带有网格标题的文本Reportlab 生成的 .pdf)。

我的目标看起来非常简单,就是添加两个鸭嘴兽,一个带有标题,一个带有网格,但没有奏效。所以我转向一个更简单的目标,并尝试附加两个鸭嘴兽纯文本..但这并没有再次奏效...... :-(

我的代码如下:

我遇到的问题是,这显然是由于没有 len() 结果对象而严重崩溃。

您有什么建议可能对此有所帮助吗?如果我使用elements0或elements1,一个与另一个分开,它们工作得非常顺利,但是当我尝试将一个与另一个附加时它不会。有什么建议吗?

非常感谢你:-)法比奥。

0 投票
1 回答
1457 浏览

python - Python Reportlab 段落没有跨越下一页

目前我正在尝试PDF documentsreportlabpython 中创建。在我的 PDF 的每一页上,都会有多个这样的问题:

在此处输入图像描述

环顾四周后,我尝试使用Platypus SimpleDocTemplateand来实现这种格式Platypus Paragraph。像这样(仅供参考 - 这不是完整的代码,但我认为这会给你一个粗略的想法)

它以我想要的方式创建问题,但是每当问题到达页面末尾时,它就会拆分问题和答案。像这样:

在此处输入图像描述

我不希望这种情况发生,所以根据这个 SO answer,我尝试使用paragraph.keepWithNext = True但它没有任何区别。

有什么方法可以将我的问题+答案放在同一页面中(如果空间不足)?

0 投票
0 回答
619 浏览

python - 如何在鸭嘴兽中传递当前目录作为参数和鸭嘴兽的默认python版本

我终于设法使用 Platypus 打包基于 python/PyQt4 的工具,但是由于我的可执行 python 脚本可以将运行应用程序的目录作为参数

我不知道如何通过鸭嘴兽将当前目录作为参数传递,我尝试了 ${PWD} 但这也不起作用。

我也尝试使用 Script Type to Env > 有同样的问题!!!

在此处输入图像描述

其次,这令人困惑,我在 OSx 上设置的默认 python 版本是 Python 2.7.1

但是 platypus Script type > Python 给出 /usr/bin/python 原来是 python 2.6

所以我手动将python脚本类型更改为Other > /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python

这使得通过双击 PythonTool.app 启动应用程序

此外,如果我设置 /usr/bin/env python 给了我 python 版本 2.7.4 但通过双击启动不起作用,但如果我们进入 MacOS 文件夹添加点击可执行二进制脚本,那么它工作..

如果我提供 PythonFramework 2.7 的路径,这是否意味着如果我将 osx 应用程序包提供给某人,他将需要具有 Python 2.7 的上述路径?

0 投票
1 回答
996 浏览

python - Openshift 报告实验室 PIL 问题

我已经在我的墨盒(Python 2.7)中成功安装了 PIL 和 reportlab,并通过控制台中的 ssh 对它们进行了测试。

不知何故,reportlab 无法使用 PIL。

我也尝试下载 PIL 并修复 64 位问题,但我继续收到错误消息。

这是我得到的消息:

我查看了代码,发现这是应该抛出异常的地方:

它应该只在“haveImages”为 False 时引发。奇怪的是,我使用控制台打印 reportlab.util.haveImage 并得到“真”

我的想法不多了...有没有人遇到过这样的情况?任何想法将不胜感激!

PD:当我尝试使用 addFromList() ((Platypus)) 将图像添加到框架时会发生这种情况

0 投票
1 回答
466 浏览

python - 如何使用鸭嘴兽将 Google 应用引擎动态图像对象添加到 ReportLab pdf 文档:“ImageReader”对象没有属性“getKeepWithNext”

我想生成从 Google 应用引擎数据库中检索图像的 pdf。

我已经看到一些涉及从画布添加图像的解决方案。虽然非常不方便,因为我更愿意向故事添加元素然后创建文档,但我尝试了。它仍然不起作用。

有没有人做到这一点?我的意思是,动态地使用谷歌应用引擎图像、reportlab 和鸭嘴兽。

提前致谢!!!

0 投票
1 回答
150 浏览

python - 重复添加相同的图像,但只检索一次图像

目的是避免重复 GET 调用,因为它是相同的图像。因此,我想存储它并重复使用它。但是,它没有像我预期的那样工作,因为调用是在append(). 例如:

你会GET在每次迭代时接到电话。我也尝试过使用BaseDocTemplateand Canvas,但到目前为止没有任何乐趣。有没有人实现过我想要做的事情?

0 投票
1 回答
489 浏览

python - 在 mac osx 上启动应用程序的多个进程

我在 mac osx 10.9 上使用 python 2.7 来创建应用程序。此应用程序将文件名作为参数,然后打开文件,并持续监视文件的更改直到文件关闭。

它适用于单个文件。我使用 py2app 和 platypus 将 python 代码 .py 文件转换为应用程序。

它的限制是,一旦启动应用程序的实例(进程)(通过单击要打开的任何文件),文件就会打开。但是,同时,我无法一次打开两个文件,即启动到应用程序实例。通过终端,可以启动一个应用程序的多个实例。

然后,我应该怎么做,一次打开多个文件,通过这个应用程序一次单击多个文件。