标签: ghostscript

在服务器模式下使用Ghostscript将PDF转换为PNG

虽然我能够将PDF的特定页面转换为PNG,如下所示:

gs \
  -dSAFER \
  -dBATCH \
  -dNOPAUSE \
  -sDEVICE=png16m \
  -dGraphicsAlphaBits=4 \
  -sOutputFile=gymnastics-20.png \
  -dFirstPage=20 \
  -dLastPage=20 \
   gymnastics.pdf
Run Code Online (Sandbox Code Playgroud)

我想知道我是否能以某种方式使用ghostscript的JOBSERVER模式来处理几次转换,而不必每次都产生启动ghostscript的成本.

来自:http://pages.cs.wisc.edu/~ghost/doc/svn/Use.htm

-dJOBSERVER

定义\004 (^D)以启动用于与通常在作业服务器下运行的Adobe PS解释程序兼容的新封装作业.-dNOOUTERSAVE如果-dJOBSERVER指定,则忽略该开关,因为作业服务器总是在保存级别下执行输入PostScript,尽管可以使用exitserver运算符从封装的作业中转义并执行,就像-dNOOUTERSAVE指定了一样.

这也要求输入来自stdin,否则会导致错误 (Error: /invalidrestore in --restore--).

示例用法是:

   gs ... -dJOBSERVER - < inputfile.ps
                -or-
   cat inputfile.ps | gs ... -dJOBSERVER - 
Run Code Online (Sandbox Code Playgroud)

注意:^D不会导致stdin上的文件结束操作,因为它可能会依赖于TBCP(标记二进制通信协议)的某些PostScript打印机导致带外^D信号在流输入数据中发出EOF信号.这意味着stdin上的直接文件操作,例如flushfileclosefile将影响^D流中的数据处理.

我的想法是在进程中运行ghostscript.该脚本将收到对pdf的特定页面的请求,并将使用ghostscript生成指定的图像.我不想每次都启动一个新的ghostscript进程.

ghostscript

5
推荐指数
1
解决办法
2077
查看次数

将Postscript转换为PNG的Ghostscript过度饱和

我正在尝试使用Ghostscript和/或ImageMagick将Postscript文档的每个页面转换为PNG图像.问题是两者都产生过于饱和的图像(我认为这是正确的术语).

以下是我正在尝试的命令:

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dGraphicsAlphaBits=4 -sOutputFile=page_%02d.png brochure.ps
convert brochure.ps im_page_%02d.png
Run Code Online (Sandbox Code Playgroud)

这是输入的Postscript文件(来自上面的brochure.ps)

这是我得到的几个输出图像:

第1页

第6页

正如您所看到的(特别是在新罕布什尔州绿色地图的页面上),输出PNG的颜色太亮/饱和.如何防止颜色变化太多并获得更准确的转换?

当您在其中打开Postscript文件时,在OS X 10.6中预览会自动执行非常准确的 PNG 转换.这让我相信只有一些东西与ghostscript转换ps-> png的方式相混淆(我相当自信ImageMagick只是这个操作的ghostscript的包装器).我应该使用除ghostscript之外的工具吗?

注意:正如pipitas指出的那样,颜色的可见差异因操作系统而异.在OS X 10.6中非常明显,但在Windows XP中显然不是很明显.

png postscript imagemagick ghostscript

5
推荐指数
1
解决办法
4926
查看次数

将源代码转换为语法高亮图像

背景

OpenOffice Writer无法链接到ASCII文本源文件,应用语法突出显示,将其包装在帧中,并在源文件更改时更新帧内容.但是,OpenOffice Writer可以链接到图像,并在更改时自动更新图像.

问题

图像需要是高分辨率(300 dpi或更高),语法着色适合白色背景(即打印页面).

如何从源代码文件自动创建高质量图像,例如:

  • SQL;
  • PostgreSQL函数;
  • Java的;
  • bash脚本; 和
  • R和PL/R?

尝试

大多数尝试都是以下主题的变体:

$ enscript --color -f Courier12 -B -1 --highlight=sql -h -o - source.sql |\
  convert - -trim -border 10 source.png
Run Code Online (Sandbox Code Playgroud)

这种方法存在一些问题:

  1. 决议缺乏(使用-resample并且-density没有改进).
  2. 语法高亮不适合白页(可能会改变enscript的颜色主题).
  3. 使用Courier100生成几个.png文件,需要将它们拼接在一起.
  4. -border 10意外更改背景颜色从白色到浅灰色.

手动解决方案

将源文件转换为PostScript - 完全避免使用ImageMagick - 然后将它们导入GIMP将产生所需的结果.不幸的是,该解决方案涉及一些手动工作,我的GIMP批处理编程经验几乎为零.

syntax-highlighting imagemagick openoffice-writer ghostscript enscript

5
推荐指数
1
解决办法
3831
查看次数

PDF to tiff ImageMagick问题

我正在尝试将pdfs转换为tiff图像以用于跟随OCR.我使用"-density 300x300 -depth 8"作为参数.第一个问题是从500 KB pdf文件我得到72 MB的tiff文件.第二个问题是导致OCR失败的结果图像质量差.在这里你可以自己看.Adobe Acrobat reader生成(打印)tiff图像: 在此输入图像描述

ImageMaggick tiff图片: 在此输入图像描述

差异很大.如何使用ImageMaggick获得与Adobe生成的图像一样好的效果?不是tiff neccesary,其他格式也会很好.

UPD:我发现'antialias'选项.现在它好多了.但仍然是OCR结果不如Adobe版本那么准确.

command-line tiff imagemagick ghostscript adobe-reader

5
推荐指数
1
解决办法
9221
查看次数

防止Ghostscript栅格化文本?

我正在尝试将PDF转换为PCL(使用ghostscript,但我很乐意听到其他建议),并且每个驱动程序(ghostscript设备),包括所有内置函数和gutenprint生成的PCL文件比输入大许多倍PDF.(这是问题 - 我需要我的PCL与输入一样小).

鉴于文本没有显示在PCL文件中,我猜Ghostscript正在栅格化文本.有没有办法阻止GS一般,或只是gutenprint,这样做?我宁愿让它嵌入字体,或者甚至不嵌入字体(留给打印机渲染字体)?

不幸的是,似乎没有关于这一点的任何文件.

pdf converter printer-control-language ghostscript

5
推荐指数
1
解决办法
3619
查看次数

正确地将pdf转换为ps,反之亦然

我正在使用"pdftops"将.pdf文件转换为.ps文件,然后使用"ps2pdf"转换为反向过程(poppler-utils).问题是,当从.ps文件创建.pdf文件时,文本看起来没问题,但是当我尝试复制它时,字符非常奇怪(就像它们被破坏一样).我在其他文件上使用这些工具很长一段时间,它工作正常.我还尝试了"pdftohtml -xml"来创建.xml文件,文本正常(字符被正确提取).

  1. 转换有什么问题?也许如果我使用"pdftops"和"ps2pdf",是否有一些需要更改的选项?
  2. 如果我创建.xml输出,有没有办法从.xml文件创建.pdf文件?

编辑:输出"pdffonts original.pdf" pdffonts_output_originalpdf

输出"roundtripped.pdf" pdffonts_output_roundtrippedpdf

pdf postscript file-conversion ghostscript

5
推荐指数
1
解决办法
1万
查看次数

Ghostscript:质量和尺寸问题

我有一个ghostscript命令,可以将pdf转换为几个PNG图像(每页一个).命令参数如下:

-dNOPAUSE -q -r300 -sPAPERSIZE=a4 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dUseTrimBox -sDEVICE=png16m -dBATCH -sOutputFile="C:\outputfile%d.png" -c \"30000000 setvmthreshold\" -f "C:\inputfile.pdf"
Run Code Online (Sandbox Code Playgroud)

pdf在Adobe Reader中显示为常规A4页面,但在PNG图像中它变得很大(例如2480乘3507像素).

如果我将ghostscript命令中的分辨率更改为-r110页面大小是正确的,但图像质量是非常rastorized.

还有另一种方法可以在不影响图像尺寸的情况下提高图像质量吗?

谢谢

pdf pdf-generation ghostscript

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

在PDF中添加白色边框(更改纸张格式)

我必须将给定的PDF从A4(210mm*297mm)更改为216mm*303mm

每个尺寸的额外6毫米应设置为每边3毫米的白色边框。PDF页面的原始内容应在输出页面上居中。

我尝试了convert

convert in.pdf -bordercolor "#FFFFFF" -border 9 out.pdf
Run Code Online (Sandbox Code Playgroud)

这恰好为我提供了所需的结果,但是我失去了PDF中原始图像的清晰度。一切都是模糊的。

我也检查过

convert in.pdf out.pdf
Run Code Online (Sandbox Code Playgroud)

完全没有任何变化,但是也弄乱了图像。

所以我尝试了Ghostcript,但没有得到任何结果。到目前为止,我发现最好的方法是:

gs -sOutputFile=out.pdf -sDEVICE=pdfwrite -g6120x8590 \
-c "<</Install{1 1 scale 8.5 8.5}>> setpagedevice" \
-dNOPAUSE -dBATCH in.pdf
Run Code Online (Sandbox Code Playgroud)

但是我收到错误:--type在-。postinstall--中

pdf imagemagick ghostscript

5
推荐指数
1
解决办法
1343
查看次数

R EnvironmentError:在路径上找不到Ghostscript.RWebLogo

我碰到了一个奇怪的问题,我无法以任何方式解决这个问题,我希望有人能够更好地理解这些错误;

我无法使用RWebLogo包 - 甚至运行最简单的示例,因为同样缺少Ghostscript错误.

例如跑步:

library(RWebLogo)
aln <- c('CCAACCCAA', 'CCAACCCTA', 'AAAGCCTGA', 'TGAACCGGA')
weblogo(seqs=aln, file.out='mylogo.pdf')
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

Traceback (most recent call last):
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogo", line 71, in <module>
    weblogolib._cli.main()
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/_cli.py", line 82, in main
    formatter(data, format, opts.fout)
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/__init__.py", line 757, in pdf_formatter
    gs = GhostscriptAPI()    
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/__init__.py", line 196, in __init__
    raise EnvironmentError("Could not find Ghostscript on path."
EnvironmentError: Could not find Ghostscript on path. There should be either a gs executable or a gswin32c.exe on your system's path
Run Code Online (Sandbox Code Playgroud)

我在终端中安装了ghostscript …

bash r user-environment ghostscript sequence-alignment

5
推荐指数
1
解决办法
1115
查看次数

如何将多页PDF转换为单页TIFF

该主题询问如何使用Ghostscript 将多页PDF转换为多页 TIFF;

但是,我想将多页PDF转换为多页单页 TIFF:PDF中的每个页面都应转换为单个TIFF文件.所以上面的答案并不完全符合我的需要.

我怎样才能做到这一点?

我使用的是Windows XP.

pdf tiff converter ghostscript multipage

5
推荐指数
1
解决办法
3082
查看次数