pdf - 使用 Ghostscript 生成缩略图可旋转我的设备尺寸定义以实现横向 pdf 页面

标签 pdf thumbnails ghostscript postscript landscape-portrait

我想使用 GS 从 pdf 文件生成缩略图。

  • 缩略图必须适合 90x120 像素的矩形
  • 图像不应旋转
  • 应调整图像大小以适合矩形并保持宽高比

我使用以下命令:

gswin32 -dPDFFitPage -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT 
-dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=0 
-dDEVICEWIDTH=90 -dDEVICEHEIGHT=120 -dORIENT1=true 
-sDEVICE=jpeg  -dTextAlphaBits=4 -dGraphicsAlphaBits=4 
-sOutputFile=output.%d.jpg input.pdf

结果:

如果我使用一些带有纵向页面的 PDF like this example ,您可以下载,那么缩略图是正确的,如下所示:

enter image description here

如果我使用它for a PDF对于横向页面,设备宽度以某种方式被视为高度:

enter image description here

如何防止这种行为?我希望我的保时捷也能是 90x120。我想也许我需要为 Ghostscript 提供一些 Postscript 代码(带有 -c 命令行参数),但我没有这方面的经验。有人可以帮我吗?

编辑1: 我尝试了suggestion of KenS 。使用 -dFIXEDMEDIA 我的保时捷被裁剪,如下所示:

enter image description here

编辑2: first solution of Kurt Pfeifle is not适合肖像图像(右侧白色部分,未正确使用空间)。见下文:

enter image description here

编辑3: third solution of Kurt Pfeifle几乎是好的。对于风景图像来说它是完美的:

enter image description here

但是,纵向页面存在尺寸问题,并且背景也变成完全灰色:

enter image description here

所以库尔特,我想我可以将 pdf 拆分为页面(使用 GS -dFirstPage 和 -dLastPage),然后如果您有一些想法,如何确定页面是否为横向或纵向,然后我可以做一些条件处理。任何想法?至于背景颜色,我认为不是那么重要,但如果你也有想法,那么欢迎。

最佳答案

好的,现在尝试根据上述“首先操作 PDF(以便它使用纵向媒体格式来显示其横向图像内容)”的想法提供更详细的答案 em>...

请注意,由于您的原始 PDF 并未对所有页面使用通用尺寸(它们都不同),因此我仅使用第一页进行了概念验证。

第 1 步:从原始内容(横向)中提取第 1 页

我使用 pdftk 来实现此目的:

porsches.pdf  cat 1  output porsche-page1.pdf

第 2 步:在较大的纵向页面上居中横向内容

我使用 Ghostscript 加上 -c ... PostScript 命令行片段:

gs \
 -o porsche-page1-on-portrait-medium.pdf \
 -sDEVICE=pdfwrite \
 -dPDFSETTINGS=/prepress \
 -g1920x2560 \
 -r72 \
 -c "<</PageOffset [0 560]>> setpagedevice" \
 -f porsche-page1.pdf

/PageOffset 值是根据我在 1440 点的原始页面高度上添加 1120 点而得出的。因此,我将内容向上移动一半值,以便图片再次居中。

第 3 步:创建 JPEG 缩略图(肖像)

gs \
 -sOutputFile=proofofconcept-thumb_%03d.jpg \
 -dPDFFitPage \
 -dDEVICEWIDTH=90 \
 -dDEVICEHEIGHT=120 \
 -sDEVICE=jpeg \
  porsche-page1-on-portrait-medium.pdf

除非我没有完全误解你的意图:这应该是你想要的结果。 (注意:我在缩略图中添加了一个黑框,以便即使在 Stackoverflow 的白色 HTML 背景上也能看到其真实尺寸。)

Proof-of-Concept thumbnail

关于pdf - 使用 Ghostscript 生成缩略图可旋转我的设备尺寸定义以实现横向 pdf 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11326318/

相关文章:

javascript - Dropzone 跨平台缩略图生成

Asp.net 图像大小调整质量

django - 使用 easy-thumbnails 为 Tastypie API 生成缩略图

ghostscript - 什么是ghostscript,为什么要使用它?

php - 将源代码转换为 pdf 并突出显示

python - PDFminer:PDFTextExtractionNotAllowed 错误

pdf - 从 PDF 中提取文本内容

ghostscript - 如何通过命令行将 Illustrator 文件转换为 EPS (*nix)

javascript - 重定向到 PDF 时像素跟踪代码不起作用

java - PDFBox 2.0.3 使用TextPosition坐标设置cropBox