我找到了这个简洁的命令,使用Ghostscript将多个PDF合并为一个:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf
Run Code Online (Sandbox Code Playgroud)
结果大小小于2个PDF的总大小.
使用单个文件作为输入运行命令仍会产生较小的输出文件.
Ghostscript上是否有一个选项可以复制页面,因为它们在合并时出现而不进行任何压缩?
如果没有,Ghostscript压缩是否可能如此之好以至于绝对不会导致质量下降?
我正在尝试缩放PDF,例如A4尺寸小到A4.
这适用于纵向文档.文档正确放大,然后填充添加到顶部.
在横向文档上,不添加填充.因此,文档最终将是A4的正确高度,但不够宽,因为文档方面没有添加填充(正如我所希望的那样).
这是我用它来处理A4肖像文档:
gs \
-sOutputFile=output.pdf \
-sDEVICE=pdfwrite \
-sPAPERSIZE=a4 \
-dCompatibilityLevel=1.4 \
-dNOPAUSE \
-dBATCH \
-dPDFFitPage \
input.pdf
Run Code Online (Sandbox Code Playgroud) 刚为Windows安装了Ghostscript 8.54.
有没有人知道传递给gswin32c.exe它的最小参数,比如someFile.eps转换为someFile.eps.pdf?
我想知道一种从PDF文件中删除白边距的方法.就像Adobe Acrobat X Pro一样.我知道它不适用于每个PDF文件.
我猜这样做的方法是获取文本边距,然后裁剪出边距.
PyPdf是首选.
iText根据以下代码查找文本边距:
public void addMarginRectangle(String src, String dest)
throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
TextMarginFinder finder;
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
finder = parser.processContent(i, new TextMarginFinder());
PdfContentByte cb = stamper.getOverContent(i);
cb.rectangle(finder.getLlx(), finder.getLly(),
finder.getWidth(), finder.getHeight());
cb.stroke();
}
stamper.close();
}
Run Code Online (Sandbox Code Playgroud) 我通常将其ghostscript视为命令行工具; 然而,我从不停止对那里存在的大量设置和选项感到惊讶 - 这是因为这ghostscript是一个完整的PostScript语言解释器(我经常忘记).
例如,在查询Ghostscript中输出设备的默认选项/设置(例如'pdfwrite'或'tiffg4') ; 一个人学习如何检索给定输出设备的默认选项.但是,我想知道的是 - 这些选项是否与所谓的PostScript词典相关?
或者,换句话说 - 什么是PostScript词典; 什么设施ghostscript有,查询(并可能)修改这些数据?
ghostscript ×5
pdf ×3
command-line ×1
dictionary ×1
itext ×1
page-size ×1
parameters ×1
postscript ×1
pypdf ×1
resize ×1
stack ×1
windows ×1