问题标签 [pypdf]

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

python - PyPDF 合并和写入问题

使用它时出现意外错误。第一部分来自我在网上找到的脚本,我正在尝试使用它来提取 PDF 大纲中标识的特定部分。一切正常,除了output.write(outputfile1)它说:

PdfReadError:字典中有多个定义。

还有其他人遇到这个吗?最后请原谅所有不必要print的s。:)

0 投票
5 回答
2894 浏览

c++ - 如何将 PDF 文档的所有页面向右移动一英寸?

我想将现有 pdf 文档的所有页面向右移动一英寸,这样它们就可以在不打到内容的情况下打三个孔。pdf 文档已经生成,因此无法更改它们的生成方式。

看来 iText 可以从上一个问题中做到这一点。

什么是 C++ 或 Python 的等效库(或这样做的方式)?

如果它依赖于平台,我需要一个可以在 Linux 上运行的。

更新:我想我会发布一个我写的小脚本,以防其他人找到这个页面并需要它。

感谢 Scott Anderson 的建议,工作代码:

右移.py

0 投票
0 回答
2086 浏览

pdf - 如何删除书签目标文档属性

问题是关于 PDF 书签。
创建书签时,可以选择分配目标页面布局(除其他外),鼓励用户不要设置,除非确实有理由这样做。
我有时会跑到这类文件,并想永久删除此属性,同时保留书签。

我假设您理解我的要求,但如果不是这里,这个问题的说法会有所不同:
我的偏好是将我的 PDF 阅读器 (Evince) 设置为具有两页显示和最适合的页面布局,这对我来说是最舒服的。现在,一些 PDF 文档在书签目的地设置了自定义文档布局(例如页面宽度 75%),每次使用书签跳转到页面时,我都必须更正我的布局。

在 PDF 阅读器中忽略此属性的选项会很好,但没有,所以我想使用一些命令行工具处理此 PDF 文件并从 PDF 书签中删除所有这些自定义属性


更新:

这是我现在在哪里 - 无处 :)

我不仅需要工具来“纠正”这个问题,而且还需要知道哪些 PDF 文件受到了影响。

我使用 pyPdf 来完成这项工作:

行如:

$ for f in *.pdf ; do python chk-out.py "$f" ; done

输出如下内容:

在方括号中,它是目标布局的类型。
脚本速度快(每秒几个文档)易于掌握,但 pyPdf 不支持编写 PDF 书签


我想用pdftk这个任务:

1:在单独的文件中转储元数据和书签:

pdftk doc.pdf dump_data | grep ^Info > doc.nfo
pdftk doc.pdf dump_data | grep ^Book > doc.toc

2:尝试删除书签,然后从“doc.toc”更新

2a. 只需尝试编写“doc.toc”

pdftk doc.pdf update_info doc.toc output new.pdf

  • 没有改变

2b。写信息元数据,希望书签轮廓将被删除:

pdftk doc.pdf update_info doc.nfo output new.pdf

  • 它没有发生

2c。在“doc.nfo”中追加BookmarkTitle: Temp title一行,希望现在书签将被覆盖:

echo "BookmarkTitle: Temp title" >> book.nfo
pdftk doc.pdf update_info doc.nfo output new.pdf

  • 它没有发生

这是我停下来的地方

我不知道任何其他 CLI 工具可以让我从 PDF 文件中删除书签,除了带有空pdfmarks文件的 GhostScript,但是 GS 处理 PDF 文件需要太多时间,我想避免这种情况。

同样在这个过程中,我开始怀疑这是 Evince 错误。仅当目标书签类型设置为/FitH“适合水平”时才会触发上述问题,我将假设改为“适合高度”,因为这就是 Evince 的行为方式。使用 Wine或在 Wine 下
打开相同文件时的行为与 Evince 不同。也许这就是这个 PDF 查看器的设计方式,但我记得在某些 Windows PDF 阅读器上看到过同样的问题(不记得是哪个) ePDFViewerSumatraPDF

顺便说一句,我在 Ubuntu 11.04 上使用 Evince 2.32.0

0 投票
4 回答
7680 浏览

python - 如何获取书签的页码

pyPdf.pdf.Destination有很多属性,但我找不到该书签的任何引用页码。如何获取书签的页码?


例如outlines[1].page.idnum,返回的数字大约是 PDF 文档中引用的页码的 3 倍,我假设它引用了一些小于页面的对象,因为.page.idnum在整个 PDF 文档大纲上运行返回的数字数组甚至与“真实”没有线性相关PDF 文档中的页码目标,大约是 3 倍


更新:这个问题与此相同:尽管我不明白作者在那里的自我回答中做了什么,但根据大纲拆分了一个 pdf 。对我来说似乎太复杂而无法使用

0 投票
1 回答
1491 浏览

python - Python中Pypdf包中的断言错误

我在 Windows 平台上使用 Python 2.4 和 PyPdf 1.13。我正在尝试使用以下代码将列表中的 PDF 文件合并为一个:

运行此代码时出现以下错误。

任何帮助是极大的赞赏。

0 投票
1 回答
2141 浏览

python - 在 Python 中从现有 PDF 创建新 PDF

我正在努力如何在 Python 中使用另一个 PDF 作为模板来创建 PDF 报告。我有一个 PDF 文件(Template.pdf),可以用作每天创建报告的模板。Template.pdf 如下所示:



销售名称 订单数量 已确认数量 已发货数量




我需要以编程方式填写 ReportDate 和销售数据,并准备 PDF 格式的报告,如下所示:ABC Corp



销售名称 订单数量 已确认数量 已发货数量


杰森 1000 900 50


彼得 500 50 450


穆拉利 2000 1000 900


可以假设没有。销售人员的数量是固定的(即报告中的行数是固定的)。

0 投票
1 回答
2055 浏览

python - 无论页数如何,pyPdf 输出文件的大小都相同

我正在尝试使用 pyPdf 将大 pdf 中的几页提取到单独的文件中。每当我这样做时,生成的文件大小几乎与源文件相同。我认为这与文件中的书签有关,因为如果页面不包含任何链接,则输出文件的大小非常小。我不知道如何从输出文件中排除书签。

0 投票
3 回答
23315 浏览

python - 使用 pyPdf 打开 pdf url

我如何从 url 而不是从磁盘打开 pdf

就像是

我想从网上打开几个文件并下载所有文件的合并。

0 投票
2 回答
17068 浏览

pdf - PDF - 删除白边

我想知道一种从 PDF 文件中删除白边距的方法。就像 Adob​​e Acrobat X Pro 一样。我知道它不适用于每个 PDF 文件。

我猜想这样做的方法是获取文本边距,然后从该边距中裁剪出来。

PyPdf 是首选。

iText 根据以下代码查找文本边距:

0 投票
1 回答
2460 浏览

python - pyPdf错误无效参数

我实际上是在使用 pyPdf 来打开、读取和写入 PDF 文件的内容。

为此,我使用这些代码行:

但它返回给我这个错误,我不明白为什么

任何人都可以帮助我吗?