问题标签 [pymupdf]

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

python - Pymupdf getTextbox 返回空

我试图检索矩形中的文本。这个矩形是从 Page.getLinks() 中检索的。当我尝试使用 getTextbox() 和 getText(“text”, clip=rect) 获取矩形中的文本时。两种方法都返回空字符串

0 投票
1 回答
1582 浏览

python - 创建一个 pdf 文件,在其中写入并使用 PyMuPDF 返回其字节流

使用 PyMuPDF,我需要创建一个 PDF 文件,在其中写入一些文本,然后返回它的字节流。

这是我的代码,但它使用文件系统来创建和保存文件:

有没有一种方法可以创建 PDF 文件,在其中写入一些文本,并在不使用文件系统的情况下返回其字节流?

0 投票
0 回答
429 浏览

python - 使用 PyMuPDF 进行 Python 文本注释

我正在使用 PyMuPDF 在 . pdf文件使用:

源 .pdf 文档包含文本: 在此处输入图像描述 通过应用上述代码,我可以包含文本“amet”的注释,获得以下结果:

在此处输入图像描述

结果似乎与预期相符,但您可以看到该库已包含黑色注释(用于“amet”)也删除了后面的行中的单词,但没有使用黑色注释。事实上,它看起来像是一个重新设计的问题。

我怎样才能避免这样的问题?

0 投票
1 回答
192 浏览

python - 文档属性 (PDF) 中的“已创建”和“已修改”字段未显示

目前,我已将许多 PDF 合并在一起以创建一个 PDF。我添加了元数据信息,其中包括“创建”和“修改”两个字段,但结果这些字段仍然不显示信息。这是我的源代码:

图片

图片

你能给我一些建议吗?

0 投票
2 回答
858 浏览

python - 有什么方法可以识别 PDF 是否被编辑/篡改以及使用 Python 编辑/篡改 PDF 的确切位置?

我正在努力识别银行对账单 PDF 文档中的伪造/篡改。信息元数据和 XMP 元数据并不总是存在于我拥有的 PDF 中,因此我无法创建任何通用规则来识别被篡改的 PDF。我正在使用 Python 库,例如 PyMuPDF、PDFMiner、PyPDF2 等。

我有两个问题:

  1. 是否有任何具体的方法来识别 PDF 是否被篡改(使用 Python 或任何其他开源技术)?
  2. 如果 PDF 被篡改,那么 PDF 的哪一部分被篡改(使用 Python 或任何其他开源技术)?

附上 2 个 PDF 供参考 -

原文:-“sbi statment_out2.pdf”链接-https://drive.google.com/file/d/1DoWAKYcCudRO-Cwjbgf7RjiJUsF3DD3s/view ? usp=sharing

使用 Sejda 在线编辑器篡改:-“sbi statment_out2_Sejda_edited.pdf 链接 - https://drive.google.com/file/d/1J4eRy9tO3jN8AqEWNrKXtn40G6vdH5G3/view?usp=sharing

在经过调和的 PDF 中,我已将“信用”列下的“2,412.00”编辑为“12.00”。

如果有任何开源解决方案,请让我知道,最好是在 Python 中。

谢谢。

0 投票
1 回答
59 浏览

python - Python 3.7 else 语句没有显示正确的索引?

我的目标是将文本文件中的行打印在一起。然而,有些行并没有像他们应该的那样在一起。我解决了分母在后面的第一个问题。对于该else声明,它们似乎都具有相同的值/索引。

终端输出:

0 投票
1 回答
105 浏览

python - 识别在线编辑器www.ilovepdf.com使用Python修改的PDF中的编辑位置

我有一份被篡改/伪造的 SBI 银行对账单 PDF。是PDF的链接。

此 PDF 使用在线编辑器www.ilovepdf.com进行编辑。编辑的部分是该'Credit'列下的第一个条目。原始条目是'2,412.00',我已将其修改为'12.00'.

是否有任何编程方式使用 Python 或任何其他开源技术来识别 PDF 的编辑/修改位置/区域(即此 PDF 中 12.00 学分左右的 BBOX(边界框))?

我已经知道的两件事:

  1. 元数据(信息或 XMP 元数据)没有用处。元数据的修改日期不能确认 PDF 是否被压缩或确实被编辑,在这两种情况下都会更改修改日期。它也没有给出编辑的位置。

  2. PyMuPDF SPANS JSON 对象也没有用,因为编辑的条目不在 SPANS JSON 的末尾,而是在 PDF 中的文本的正确顺序中。是从 PyMuPDF 生成的 SPAN JSON 文件。

请让我知道是否有人有任何开源解决方案来解决这个问题。

0 投票
1 回答
751 浏览

python - 如何使用 pymupdf 减小修改后 PDF 的大小

我正在通过编辑某些单词并在 pymupdf 的编辑区域顶部添加不同的单词来编辑 pdf。

该代码成功运行,但是它生成了一个非常大的单页 pdf (9MB)。我认为这是因为绘制了许多形状和编辑,但我似乎无法重构。

从这篇文章中知道我不应该page.apply_redactions()多次申请,但如果我不这样做,文本不会正确显示在编辑方块的顶部,或者它会引发ValueError: fill rect must be finite and not empty.

任何帮助重构较小的输出 pdf 将不胜感激。

0 投票
1 回答
743 浏览

python - 如何在 PDF 文件中查找表格网格线?

为了更准确地提取嵌入在表格单元格中的类似表格的数据,我希望能够识别 PDF 中的表格单元格边界,如下所示:

pdf表格示例

我曾尝试使用 Camelot、pdfplumber 和 PyMuPDF 提取此类表,并取得了不同程度的成功。但由于我们收到的 PDF 不一致,即使指定表格边界,我也无法可靠地获得准确的结果。

我发现如果我通过明确指定单元格边界来单独提取每个表格单元格,结果会更好。我已经通过手动输入边界进行了测试,这是我使用 Camelot 的可视化调试工具获得的。

我的挑战是如何以编程方式识别表格单元格边界,因为表格可能从页面上的任何位置开始,并且单元格的垂直高度可变。

在我看来,可以通过查找行分隔线的坐标来做到这一点,这对人类来说在视觉上是如此明显。但我还没有弄清楚如何使用 python 工具找到这些行。这是可能的,还是有其他/更好的方法来解决这个问题?

0 投票
3 回答
300 浏览

python - mupdf:更改加密时无法进行增量写入

我正在尝试使用 package.json 将目录添加到 pdf 中fitz

这是我的脚本

这是堆栈跟踪