标签: pdftk

命令行:如何将 PDF 文件旋转 90 度?

当我扫描横向文档时,输出的 PDF 文件是纵向的,因此所有 PDF 查看器都以纵向显示扫描的文档。

从命令行,如何将 PDF 文件旋转 90 度?

我尝试搜索并找到了一堆解决方案,但我很难找到看起来像是使用稳定而强大的 Linux/Unix 工具的权威解决方案 [1]。


脚注 [1]

例如,这里是我发现的一些随意解决方案的示例:

  • “只需使用 Adob​​e Acrobat Pro 旋转文件然后保存文件”
  • “使用pdfjam”
  • “使用PDFtk”
  • “使用来自 Poppler 的 ${PROGRAM_NAME}”
  • “使用 ImageMagick 的转换”——但随后所有的评论都非常消极,并指出“图像质量被破坏了”
  • “在 PDF 查看器中打开文件,然后旋转,然后使用像 cutPDF 或 PDF 打印机等 PDF 打印机打印”
  • “使用 ${PROGRAM_NAME}”,然后我搜索了“${PROGRAM_NAME}”并且有一些关于“由于许可问题,Fedora 删除了 ${PROGRAM_NAME}”

command-line pdf pdftk poppler

111
推荐指数
7
解决办法
9万
查看次数

旋转pdf页面:偶数页90度,奇数页-90度

我想知道在 pdf 文件中,如何旋转 pdf 页面:偶数页为 90 度,奇数页为 -90 度?

通过 pdftk,我所知道的是将页面pdftk in.pdf cat 1W output out.pdf旋转 ,并将所有页面旋转pdftk in.pdf cat 1-endW output out.pdf

谢谢!

pdf pdftk

30
推荐指数
2
解决办法
2万
查看次数

在 PDF 文件中添加和编辑书签

通过从一些带有书签的 pdf 文件中获取元数据pdftk,我观察了 pdf 元数据中书签的格式。所以我猜用pdftk,可以添加和编辑 pdf 文件的书签。

以下是我遵循的三个步骤:

  1. 我首先通过 .pdf 文件将元数据(包括书签,如果有的话)转换为文本文件pdftk in.pdf dump_data > in.info
  2. 接下来,我将一些书签添加到元数据文本文件中in.info,将其从

    InfoKey: Creator
    InfoValue: PScript5.dll Version 5.2
    InfoKey: Title
    InfoValue: SSReader Print.
    InfoKey: Producer
    InfoValue: Acrobat Distiller 7.0 (Windows)
    InfoKey: Author
    InfoValue: Administrator
    InfoKey: ModDate
    InfoValue: D:20050605073244+08'00'
    InfoKey: CreationDate
    InfoValue: D:20050605073244+08'00'
    PdfID0: 591a87c91dc76881fdf2ccf3811e72a5
    PdfID1: 6b6ab11de8824e438e4f5eb1d85ec72
    NumberOfPages: 400
    PageLabelNewIndex: 1
    PageLabelStart: 1
    PageLabelNumStyle: DecimalArabicNumerals
    
    Run Code Online (Sandbox Code Playgroud)

    InfoKey: Creator
    InfoValue: PScript5.dll Version 5.2
    InfoKey: Title
    InfoValue: SSReader Print.
    InfoKey: Producer …
    Run Code Online (Sandbox Code Playgroud)

pdf pdftk

29
推荐指数
4
解决办法
3万
查看次数

为什么 PDFTK 说它找不到就在那里的文件?

我正在尝试将一堆 PDF 编译成一个文档。ls显示文件位于我所在的目录中并且它们是可读的 ( -rw-r--r--)。但是当我尝试运行时pdftk 2017.pdf cat output test.pdf出现错误:

Error: Unexpected Exception in open_reader()
java.io.FileNotFoundException: 2017.pdf (Permission denied)
   at gnu.java.nio.channels.FileChannelImpl.open(libgcj.so.16)
   at gnu.java.nio.channels.FileChannelImpl.<init>(libgcj.so.16)
   at gnu.java.nio.channels.FileChannelImpl.create(libgcj.so.16)
   at java.io.RandomAccessFile.<init>(libgcj.so.16)
   at pdftk.com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PRTokeniser.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
Error: Failed to open PDF file: 
   2017.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.
Run Code Online (Sandbox Code Playgroud)

如果我向该操作添加更多文件,我只会收到每个文件的错误。

我可以从命令行重命名 PDF,但mv 2017.pdf foo.pdf出现相同的错误。Error: Unexpected Exception in open_reader() java.io.FileNotFoundException: foo.pdf (Permission denied)

如果我尝试调用一个不存在的文件,例如。 pdftk 123.pdf cat output test.pdf …

java pdftk dropbox

24
推荐指数
2
解决办法
8711
查看次数

如何使用 ghostscript 或 pdftk 在 PDF 中插入空白页?

我有一个 PDF 文件,需要经常插入一个空白页。这种模式是不可预测的,所以我需要一个命令,让我可以在任何必要的地方安装一个。

我怎样才能做到这一点?

pdf ghostscript pdftk

20
推荐指数
2
解决办法
2万
查看次数

使用 pdftk 等工具重新排列 PDF 文件的页面时如何保留书签?

我在用 pdftk书签/大纲重新排列 pdf 文件的页面,但在那之后,输出文件丢失了原始文件的书签。

我的命令是pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf

我想知道如何在重新排列页面时保留书签?

pdf pdftk

17
推荐指数
3
解决办法
6386
查看次数

从命令行每张打印两页

假设我从一个 PDF 文档开始,比如说 12 页,用evince查看。要生成另一个 6 页的 PDF,页面设置为每面两页,我通常使用 ^P 对话窗口中列出的“打印到文件”设备。这很巧妙。

我想为命令行翻译这个操作。

  • 据我了解,这不是pdftk可以做的操作。请交叉检查。
  • lp接受该选项的命令-o number-up=2无法识别任何称为“打印到文件”的设备,而该设备确实没有出现在lpstat -p -d.
  • 我知道什么是“打印到文件”的帖子,它可以从命令行使用吗?. 我已经安装了cups-pdf,其中确认了名为 PDF 的新打印机。但是,简单文本文件的打印质量太原始(例如,开始时没有打印边距)。此外,如果我在此设备上重新打印现有的 PDF 文件,例如lp -p PDF existing.pdf,evince 甚至无法打开复制的输出,而“打印到文件”方式则不是这种情况。
  • 我看了看man evince。在底部,它涉及一些打印预览选项并重定向到GNOME 开发人员项目页面。不可否认,我无法理解和使用它。

实际上有没有办法将命令行的灵活性与我从 GUI evince 中的“打印到文件”选项中获得的打印质量相结合?

同样,我的测试用例是从命令行从每张纸打印两页的源文档中创建一个 PDF。

谢谢你的思考。

cups pdf pdftk evince lp

15
推荐指数
2
解决办法
9766
查看次数

我如何“取消预订”pdf

我有一个被做成小册子格式的 pdf 文件。它旨在横向打印在 A4 纸上;这是pdf中的两页,应该对应于实际书中的四页。

 -------------------------------
|              |                |
|              |                |
|              |                |
|    (1)       |      (3)       |
|              |                |
|              |                |
|              |                |
 ------------------------------- 

 -------------------------------
|              |                |
|              |                |
|              |                |
|    (4)       |      (2)       |
|              |                |
|              |                |
|              |                |
 -------------------------------
Run Code Online (Sandbox Code Playgroud)

括号内的数字对应于各个页面的顺序。

我知道在 linux 上有各种各样的命令(pdfbook、pdfnup 等)(这可能是用来制作这本小册子的)。我如何“取消预订”——也就是说,我想从中制作一个 pdf 文档,其中最终产品的每个单独页面都是 pdf 的单独页面,以通常的方式排序。

编辑

感谢 Gilles,我设法使用了以下代码:

import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = …
Run Code Online (Sandbox Code Playgroud)

command-line pdf pdftk

10
推荐指数
1
解决办法
926
查看次数

使用命令行(没有pdflatex)从模板创建pdf的最简单方法?

十年来,我一直以这种方式为我和我的妻子生成帐单:

  1. 使用 LyX 或手动创建 TeX 模板
  2. 在此源占位符文本中使用
  3. 然后:

    cat template | sed s/placeholder1/somevalue1/ |sed s/placeholder2/somevalue2 ... > output.tex
    pdflatex output.tex 
    
    Run Code Online (Sandbox Code Playgroud)

可悲的是,在过去的几年里,这个过程变得越来越困难,因为 TeX 包变得越来越大(不知道为什么,但在 Ubuntu 上完整的 TeX 安装几乎是 3 GB),而且我在这一代中总是遇到很多错误.

那么,由于我可以控制所有涉及的过程,是否有更好(更简单/更便携)的方法来创建模板,然后用字段填充它并创建 PDF?

linux pdf pdftk latex

6
推荐指数
1
解决办法
2395
查看次数

通过命令行在 PDF 中叠加文本

以下命令使用 Convert 生成以下图像的结果,其中包含字母“A”的覆盖框叠加在 PDF 上:

转换 online_gauss.pdf -填充白色 -undercolor '#00000080'
-pointsize 40 -gravity South -annotate +0+5 ' A ' online_gauss_annot.pdf

期望的结果

但是,convert 会对源进行栅格化。由于我想保留原始 PDF 格式(矢量)进行发布,是否有一种简单的方法可以通过命令行在单个 PDF 图像上实现此类注释?只要有这封信我就会很高兴,即使是在左下角。

我见过一些使用 Ghostscript、pdftk(图章)的示例,但它们涉及几个中间步骤,很难正确处理不同大小的 PDF 图像。

linux pdf ghostscript pdftk

6
推荐指数
2
解决办法
8031
查看次数

标签 统计

pdftk ×10

pdf ×9

command-line ×2

ghostscript ×2

linux ×2

cups ×1

dropbox ×1

evince ×1

java ×1

latex ×1

lp ×1

poppler ×1