我正在使用Ghostscript将多页PDF转换为单独的JPEG文件,并可以输出编号为的文件page_%03d.jpg.
但它总是从page_001.jpg开始,我需要它从page_000.jpg开始编号输出文件.
是否有一个设置我可以用来让Ghostscript从0开始,或者我将不得不在处理后重命名所有文件?
当我使用ghostsview将postscript文件转换为tiff时,我使用格式72,但是如果我想在使用ghostscript时使用相同的格式,我应该使用哪种分辨率?例如
gswin32c.exe -q -dNOPAUSE -sDEVICE=tiffg4 -r????? -sOutputFile=a.tif a.ps
Run Code Online (Sandbox Code Playgroud)
好像是这样
gswin32c.exe -q -dNOPAUSE -sDEVICE=tiffg4 -r600 -sOutputFile=a.tif a.ps
Run Code Online (Sandbox Code Playgroud)
但这不完全正确.
编辑:我的意思是在ghostsview中,这是ghostscript的gui版本,我可以设置分辨率让我们说"tiffcrl"为72,96,204x196和204x98.我想要的是获得与ghostview中将分辨率设置为72时相同的输出,就像我使用Ghostsript gswin32c.exe时一样
gsview中的默认设置是什么,所以我可以直接将它们传输到命令行提示符,以便输出结果相同?
EDIT2:gsview的版本是4.9,ghostscript的安装版本是9.01,我的操作系统是windows 7 32bit,我只安装了一个ghostscript版本.
我所做的是用gsview打开一个Postscript文件,然后按"文件"下的"转换".之后我选择设备tiffcrle和分辨率72.所有其他选项都是默认的(我没有搞砸它们可以这么说).我这样做的文件的分辨率为4958x7017.
当我用ghostscript做的时候
gswin32c.exe -q -dNOPAUSE -sDEVICE=tiffcrle -r72 -sOutputFile=a.tif a.ps
我得到一个更小的文件(kb明智),分辨率为595x842,具有完全蹩脚的分辨率.
我也尝试了相同的命令,但使用-r600,它给了我一个与gsview make文件具有相同分辨率的文件,但它有不同的大小(kb明智).
当我尝试命令时,你提供了@pipitas:
gswin32c.exe -o nul -sDEVICE=tiffcrle -c "currentpagedevice {exch ==only ( ) print == } forall" | findstr /i resolution
我得到了结果
/.MarginsHWResolution [204.0 196.0]
/HWResolution [204.0 196.0]
当我在-r204x196下尝试该分辨率时,它仍然不会给出相同的输出.
最好的祝福!
我已经从MacPorts安装了Ghostscript,并且我试图从PHP脚本调用它来从多页PDF文件中提取单页然后输出它.我的代码看起来像这样:
<?php
$cmd = '/opt/local/bin/gs -sDEVICE=pdfwrite -dNOPAUSE \
-dBATCH -dSAFER -dFirstPage=20 -dLastPage=20
-sOutputFile=%stdout "/path/to/input/pdf.pdf"';
// Will uncomment this when it works
// header("Content-Type: application/pdf");
putenv("GS_LIB=/opt/local/share/ghostscript/9.02/lib");
putenv("GS_FONTPATH=/opt/local/share/ghostscript/fonts");
putenv("TMPDIR=/tmp");
passthru($cmd);
Run Code Online (Sandbox Code Playgroud)
当我在网络浏览器中点击此脚本时,我看到:
GPL Ghostscript 9.02 (2011-03-30) Copyright (C) 2010 Artifex Software, Inc.
All rights reserved. This software comes with NO WARRANTY: see the file
PUBLIC for details. **** Unable to open the initial device, quitting.
Run Code Online (Sandbox Code Playgroud)
相同的命令来自shell.
我正在尝试将多页PDF文件转换为一堆JPEG,一个用于PDF中的每个页面.我花了几个小时看着如何做到这一点,最终我发现我需要安装Ghostscript.所以我这样做了(来自这个网站:http://downloads.ghostscript.com/public/我使用了2012年2月8日的最新链接"ghostscript-9.05.tar.gz").
但是,即使已安装/下载,我仍然无法做我想要的.我应该将此保存在特殊的地方,例如与ImageMagick在同一文件夹中吗?
我到目前为止所知道的是:
在命令提示符中,我将工作目录更改为保存它的ImageMagick文件夹.
然后我输入
convert "<full file path to pdf>" "<full file path to jpg>"
Run Code Online (Sandbox Code Playgroud)接下来是一大堆错误.它始于:
Unrecoverable error: rangecheck in.setuserparams
Operand stack:
Run Code Online (Sandbox Code Playgroud)
接着是一些难以理解的数字和大写字母.它结束于:
While reading gs_lev2.ps:
%%[ Error: invalidaccess; OffendingCommand: put ]%%
Run Code Online (Sandbox Code Playgroud)
毋庸置疑,经过数小时和数小时的审议后,我认为我没有更接近于将这个PDF转换为JPG的看似简单的任务.
我想要的是如何使这项工作一步一步的说明.不要遗漏任何东西,无论它看起来多么"明显"(尤其是涉及ghostscript的任何东西).几个月以来,这一直困扰着我和我的主管.
为了进一步说明,我们使用的是Windows XP操作系统.最终的目的是在R(统计语言)中调用这些命令行,并在脚本中运行它.此外,我已经能够成功地将JPG转换为PNG格式,反之亦然,但PDF只是不起作用.
救命!!!
我想将 PDF 的第一页提取为 PNG 以使用以下命令对其进行一些图像处理:
$ gs -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pngalpha -dLastPage=1 -sOutputFile='test.png' 'test2.pdf'
Run Code Online (Sandbox Code Playgroud)
它适用于大多数 PDF,但它在这个 PDF 上添加了透明边距:http : //ubuntuone.com/23676W4TJPyX6W2pkp5guG
Gimp是否按预期执行(没有保证金),convert也有同样的问题-sDEVICE=jpeg。
有什么办法可以避免吗?
我使用Python 3.3.刚下载并安装了ghostscript 32位(GPL发布),但我无法导入它.
我正在使用命令:
import ghostscript
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ImportError: No module named ghostscript
Run Code Online (Sandbox Code Playgroud)
我用资本'G'试了一下,但仍然行不通.有任何想法吗?
我已经在我的 64 位 linux 机器上安装了 64 位的 ghostscript。我正在使用 ghost4j-0.5.0.jar 将 pdf 文件转换为 tiff 文件。我写了一个java程序,它将pdf文件转换为tiff文件。这在 Windows 上运行得非常好,但是当我想到将它移动到 linux 机器时,我收到以下错误。
“线程“main”中的异常java.lang.UnsatisfiedLinkError:无法加载库“gs”:libgs.so:无法打开共享对象文件:没有这样的文件或目录”
我检查了 lib 文件夹,但在 lib 文件夹中找不到 libgs.so 文件。我不确定从哪里获取该文件。
任何人都可以帮我解决这个问题吗?
到目前为止,使用pdfimages和mupdf/进行的图像提取mutool效果还不错。
用FreePDF生成的PDF中的图像始终被切片,因此一张图像会生成多个图像文件。
有避免这种情况的技巧吗?如何使用的结果pdfshow?将PDF转换为PNG或JPEG后,是否有坐标可知道要剪切/裁剪图像的位置,高度和宽度?
我尝试使用以下命令压缩pdf文件:
gswin64c -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dQUIET -dBATCH -sOutputFile=test-compressed.pdf test.pdf
Run Code Online (Sandbox Code Playgroud)
我在test.pdf目录中,也可以打开它,但是当我执行命令时,出现以下错误,尽管应该使用-sOutputFile = test-compressed.pdf指定输出文件:
GPL Ghostscript 9.16: Device 'pdfwrite' requires an output file but no file was specified.
**** Unable to open the initial device, quitting.
Run Code Online (Sandbox Code Playgroud) 使用ImageMagick或GhostScript或任何PHP代码如何获取PDF文件的DPI值?这是两个演示文件的链接
我用过
$image = new Imagick();
$image->readImage('xyz.pdf');
$resolutions = $image->getImageResolution();
Run Code Online (Sandbox Code Playgroud)
对于具有不同DPI的两个不同PDF文件,它给出相同的结果。
我也用过
pdfimages -list xyz.pdf
Run Code Online (Sandbox Code Playgroud)
它提供了所有信息的列表,但如何从列表中获取DPI值。
如何获得PDF的确切DPI值?
ghostscript ×10
pdf ×4
imagemagick ×3
compression ×1
dpi ×1
ghost4j ×1
image ×1
import ×1
java ×1
jpeg ×1
mupdf ×1
php ×1
png ×1
postscript ×1
python ×1
python-3.x ×1
tiff ×1
windows ×1
xpdf ×1