我试图将两个或多个postscript文件合并为一个.我尝试连接但它不起作用,因为每个postscript文件可能有不同的资源标头.
以前有人这样做过吗?那里有没有图书馆(商业或开源)?我不介意C++,C#甚至Java库.
编辑 这些是大型的postscript文件(超过200 Mb),其目的仅用于彩色打印(不适用于在线查看).
结论
总之,合并两个postscript文件的临时解决方案是选项3或4.
我正在编写一个小应用程序来将多个多页PDF转换为多页TIFF文件.根据这个网站上的其他问题和答案,我已经尝试了ghostscript和ImageMagick,但是当我运行它们时,这两个软件只会隐藏第一页.有没有其他工具可以用来实现这一点,最好是开源的?
在我的应用程序中将数据保存到Postscript会生成一个Postscript文件,我可以在GhostView中查看而没有问题,但是当我尝试打印它时,打印机无法打印它,因为它似乎无效.
有没有办法在Postscript文件中验证/查找错误而不实际将其发送到打印机?首选的是某种Java API /库,但执行相同操作的程序也可以.
编辑#1:不,我不知道为什么它是无效的,甚至不一定是无效的,但是希望能够在ghostview之外验证它,或者弄清楚当它无法打印时会发生什么.
答:使用ps2ps技巧,我能够看到Postscript的输出,并检查差异.不同之处在于我不允许在Postscript中为图像的宽度或高度设置十进制数,而只允许使用整数.所以我仍然没有找到验证的方法,但这种方式对我的问题来说已经足够了.谢谢.
当我使用以下ghostscript命令从PDF生成jpg缩略图时,图像质量通常很差:
gs -q -dNOPAUSE -dBATCH -sDEVICE=jpeggray -g465x600 -dUseCropBox -dPDFFitPage -sOutputFile=pdf_to_lowres.jpg test.pdf
Run Code Online (Sandbox Code Playgroud)
相比之下,如果我使用ghostscript生成高分辨率png,然后使用mogrify将高分辨率png转换为低分辨率jpg,我会得到相当不错的结果.
gs -q -dNOPAUSE -dBATCH -sDEVICE=pnggray -g2550x3300 -dUseCropBox -dPDFFitPage -sOutputFile=pdf_to_highres.png test.pdf
mogrify -thumbnail 465x600 -format jpg -write pdf_to_highres_to_lowres.jpg pdf_to_highres.png
Run Code Online (Sandbox Code Playgroud)
有没有办法在绕过中间pdf - >高分辨率png步骤的同时取得好成绩?我需要为大量的pdf执行此操作,因此我正在尝试最小化计算时间.
以下是上面引用的图像的链接:
我想顺利地在PostScript中运行动画.为了看看我想要什么,让我直接切换到PostScript.调用ghostscript,和
200 dup scale .5 setgray 0 0 3 3 rectfill
Run Code Online (Sandbox Code Playgroud)
我们现在有一个灰色方块.
0 setgray 0 1 3 1 rectfill
Run Code Online (Sandbox Code Playgroud)
带有黑色条纹.我们现在将填充该条纹,连续一次白色和黑色:
{1 setgray 0 1 3 1 rectfill 0 setgray 0 1 3 1 rectfill} loop
Run Code Online (Sandbox Code Playgroud)
您现在将看到一些小于原始黑色条纹的黑色和白色矩形的闪烁.理想情况下,我们会看到原始的灰色方块.或差不多.我今天在哪里可以获得这样的功能?
要查看更有趣的动画序列,搜索大小为5的魔术方块:
wget http://www.complang.tuwien.ac.at/ulrich/gupu/l5.eps.gz
zcat l5.eps.gz | ghostscript -
Run Code Online (Sandbox Code Playgroud)
几年前,我确实试图解决这些问题.但它从未进入过ghostscript或Xfree.看到 这个页面.也许现在有更好的想法?
编辑:到目前为止阅读回复后,让我在这里澄清一个问题.从本质上讲,这个问题有两个独立的问题:
如何从语言层面查看动画?我相信,最好的方法是将每个帧视为一个页面.通过copypage低成本可以实现增量更改.可悲的是,这种语义copypage只出现在1级和2级.在3级,意思copypage改变为showpage.我做了 - 很多年前 - 对ghostscript做了一点修改,将所有可见的变化延迟到copypage或showpage.以这种方式,在服务器(即,显示器)上本地XCopyArea执行包含改变区域的单个.
如何同步视觉显示器上的实际变化以避免所描述的图形中不存在的假象?您看到的不规则闪烁不是PostScript的特权,它似乎存在于我迄今为止看到的任何双缓冲系统中.试着用你认为合适的系统编程.
进一步编辑:
要获得正确的语言级别,即1级或2级(对于ghostscript):
systemdict /.setlanguagelevel known {2 .setlanguagelevel} if …Run Code Online (Sandbox Code Playgroud) 我需要将我的PDF文件中的某个部分裁剪为PNG(这将使用Ghostscript与PHP自动完成).这就是我现在所做的,基本上将PDF的第一页转为PNG:
gs -q -dNOPAUSE -dBATCH \
-sDEVICE=pngalpha -dEPSCrop \
-sOutputFile=output.png input.pdf
Run Code Online (Sandbox Code Playgroud)
具体来说,我正试图将这个左上角的卡片裁剪为PNG.我也愿意就如何实现这一目标提出更多建议.
你能告诉我如何使用Ghostscript或Postscript将TIFF转换为PDF?
我试着使用这个命令:
gswin32c.exe -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=o.pdf test.tif
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
它会产生错误:
GPL Ghostscript 9.06 (2012-08-08) Copyright (C) 2012 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Error: /undefined in II* Operand stack: Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1910 1 3 %oparray_pop 1909 1 3 %oparray_pop 1893 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push …
好吧,我在stackoverflow上找到了如何通过在shell上执行以下命令来使用Ghostscript计算PDF文件的页面
gs -q -dNODISPLAY -c "($PATH_TO_PDF) (r) file runpdfbegin pdfpagecount = quit"')
Run Code Online (Sandbox Code Playgroud)
我想从stdin获取pdf.
我会玩一点,但没有成功.
我的方法是:
gs -q -dNODISPLAY - -c "(%stdin) (r) file runpdfbegin pdfpagecount = quit"')
Run Code Online (Sandbox Code Playgroud)
我没有输出.
任何提示或建议?
我对 GhostScript 世界非常陌生,我想知道我们编写时设置的配置是什么,例如 -dPDFSETTINGS=/ebook?
我面临的问题是 /ebook 质量太低,而 /printer 太重。我正在寻找中间的某个地方:)
我想从 PHP 中的 pdf 页面生成图像。我正在使用 imagick php 扩展来实现这一点,但是当我尝试通过 imagick 读取 pdf 文件时出现以下错误
Fatal error: Uncaught ImagickException: PDFDelegateFailed `The system cannot find the file specified. ' @ error/pdf.c/ReadPDFImage/801
Run Code Online (Sandbox Code Playgroud)
我的代码是
$imagick = new Imagick();
$imagick->readImage(dirname(__FILE__). '/test.pdf');
Run Code Online (Sandbox Code Playgroud)
来自 phpinfo() 的我的服务器详细信息
PHP: Version 7.0.13
System: Windows NT LALMANI-PC 6.1 build 7601 (Windows 7 Ultimate Edition Service Pack 1) i586, Architecture: x86
imagick module version: 3.4.3
Imagick using ImageMagick library version: ImageMagick 6.9.3-7 Q16 x86
Run Code Online (Sandbox Code Playgroud)
我还在我的系统中安装了 ImageMagick-6.9.9-27 和 Ghostscript 9.22。
请让我知道这里有什么问题。提前致谢。
ghostscript ×10
pdf ×6
postscript ×6
imagemagick ×2
php ×2
tiff ×2
animation ×1
dpi ×1
java ×1
png ×1
shell ×1
validation ×1
x11 ×1