6

你能告诉我如何使用 Ghostscript 或 Postscript 将 TIFF 转换为 PDF 吗?

我尝试使用此命令:

gswin32c.exe -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=o.pdf test.tif

但它不起作用。

它产生一个错误:

GPL Ghostscript 9.06 (2012-08-08)
版权所有 (C) 2012 Artifex Software, Inc。保留所有权利。
此软件不提供任何担保:有关详细信息,请参阅文件 PUBLIC。
错误:/未定义在 II*
操作数栈:

执行栈:
   %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 --nostringval--
字典栈:
   --dict:1169/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
当前分配模式是本地的
当前文件位置是 4
GPL Ghostscript 9.06:不可恢复的错误,退出代码 1

4

6 回答 6

8

Ghostscript 读取 PDF 和 PostScript 作为输入,它不读取图像格式,特别是不读取 TIFF。但是 PostScript 是一种编程语言,因此完全可以编写 PostScript 程序来读取 TIFF 文件(Ghostscript 提供的 viewgif.ps 和 viewjpeg.ps 程序对 GIF 和 JPEG 格式执行此操作)

在某种程度上,我确实有一个程序可以做到这一点,并且已经在 comp.lang.postscript 上发布了几次。在这里分享有点大(33Kb),但如果你有兴趣,我可以通过电子邮件给你一份副本。

于 2013-03-05T08:39:56.397 回答
8

libtiff软件包(适用于所有主要操作系统平台)附带一个名为tiff2pdf.

$ tiff2pdf -h
  LIBTIFF, Version 4.0.3
  Copyright (c) 1988-1996 Sam Leffler
  Copyright (c) 1991-1996 Silicon Graphics, Inc.
  
  usage:  tiff2pdf [options] input.tiff
  options:
   -o: output to file name
   -j: compress with JPEG
   -z: compress with Zip/Deflate
   -q: compression quality
   -n: no compressed data passthrough
   -d: do not compress (decompress)
   -i: invert colors
   -u: set distance unit, 'i' for inch, 'm' for centimeter
   -x: set x resolution default in dots per unit
   -y: set y resolution default in dots per unit
   -w: width in units
   -l: length in units
   -r: 'd' for resolution default, 'o' for resolution override
   -p: paper size, eg "letter", "legal", "A4"
   -F: make the tiff fill the PDF page
   -f: set PDF "Fit Window" user preference
   -e: date, overrides image or current date/time default, YYYYMMDDHHMMSS
   -c: sets document creator, overrides image software default
   -a: sets document author, overrides image artist default
   -t: sets document title, overrides image document name default
   -s: sets document subject, overrides image image description default 
   -k: sets document keywords
   -b: set PDF "Interpolate" user preference
   -h: usage

因此,获取 PDF 的简单命令是:

$ tiff2pdf -o output.pdf -p A4 -F test.tif
于 2015-05-24T00:49:18.087 回答
4

使用gdal_translate实用程序。它专为地理空间光栅图像而设计,但它并不关心它是否只是普通图像。

gdal_translate -of pdf \path\to\someimage.tif test.pdf

有关 geo-pdf 驱动程序及其选项的附加信息: http ://www.gdal.org/frmt_pdf.html

应用的默认压缩是 DEFLATE,这很好,因为它是无损的,但不会产生非常小的文件。通常使用 PREDICTOR 和 TILED 选项可以提高压缩率(但并非总是使用您的数据进行测试)。

gdal_translate -of pdf ^
--config COMPRESS=DEFLATE --config PREDICTOR=2 --config TILED=YES ^
in.tif deflate.pdf

对于最小的文件,请使用 JPEG。对于最小和最小损耗的组合使用 JPEG2000,但在客户端的 pdf 阅读器中进行测试,因为支持不是普遍的(最近的 Adob​​e Reader 很好)。

gdal_translate -of pdf -co compress=jpeg -co jpeg_quality=85 ^
inimage.tif outdoc.pdf

gdal_translate -of pdf -co compress=jpeg2000 ...

-co为简洁起见,它可以与 . 互换--config。第一个示例中的大写仅是约定,在命令行上无关紧要。 ^是 Windows 字符,用于抑制换行,在一行中省略。

获取预构建的二进制文件: http ://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries

如果您对地理信息系统一无所知,那么弄清楚要使用哪个分发包会有点麻烦。如果您只想将程序塞入某个地方并运行它,请从 GIS Internals,2015 年 1 月 32 位稳定版本此处获取“单个 zip 中编译的二进制文件”,解压缩并从.SDKShell.bat

于 2015-04-14T19:29:05.870 回答
1

我使用 Imagick 将 Tiff 文件转换为 Pdf 文件

代码 :

$document = new Imagick(test.tiff); 

$document->setImageFormat("pdf");

$document->writeImages("test.pdf", true);
于 2015-05-20T10:09:08.223 回答
1

到目前为止,我使用过的最好的工具是 Irfanview。它允许我们制作一个非常模糊的 TIFF 文件版本,还允许我们进行混合 TIFF 到 PDF 的转换,其中一些页面是灰度的,一些是彩色的,还有一些是 CCITT4 传真编码的。

我创建了一个 .NET 程序,它使用以下命令行使用 Irfanview 转换了数百万个文档:

C:\Program Files (x86)\IrfanView\i_view32.exe TIFFFile.tiff /convert=OutputPDFFile.pdf /silent /cmdexit

.NET 程序本质上只是传递了 TIFF 输入和 PDF 输出文件的完整路径。

设置

下载 Irfanview 32 位。并非所有插件都可用于 64 位版本,因此我使用了 32 位。

然后下载 Irfanview 的插件包并安装。

然后打开 Irfanview,您需要通过转到文件>>批量转换/重命名来定义 IMPdf 插件(仅限传统 32 位插件)或较新的 PDF 插件的设置。

批量转换/重命名窗口中的设置对程序的每次后续执行都有效,因为它们存储在 Irfanview INI 文件中。

单击输出格式,然后选择 PDF。

然后单击选项按钮。这将允许您控制输入 TIFF 文件在转换为 PDF 时会发生什么的参数。

然后尝试 irfanview 手动对一些 TIFF 文件执行此操作,以确保所需的输出。

然后,您可以使用程序将其自动化...

于 2018-12-27T21:51:25.233 回答
-3

我在 ubuntu 上使用 Java的Ghostscript将PDF 文件转换为 Tiff 文件。 片段代码:

String convertCommand = "gs -dNOPAUSE -q -sDEVICE=tiff24nc -sCompression=lzw -dBATCH -sOutputFile=" + outputFile + " " + sourceFile;
运行时 rt = Runtime.getRuntime();
进程 pr = rt.exec(convertCommand);
pr.waitFor();

如果要压缩,只需将命令替换为
String convertCommand = "gs -dNOPAUSE -q -sDEVICE=tifflzw -dBATCH -sOutputFile=" + outputFile + " " + sourceFile;

使用前请先安装 Ghostscript,
1. sudo apt-get install ghostscript libtiff-tools

于 2013-06-12T06:36:11.420 回答