标签: ghostscript

Ghostscript:如何确定将多页PDF转换为多个TIFF的输出分辨率

我需要从扫描仪中的一堆多页PDF文件中提取TIFF图像.在扫描期间,我指定了600dpi的分辨率.

  1. 这是我用来生成TIFF图像的代码:

    gs -q -dNOPAUSE -sDEVICE=tiffg4 \
       -sOutputFile=a_page%02d.tif a.pdf -r600x600 -c quit
    
    Run Code Online (Sandbox Code Playgroud)

    这给了我正确数量的TIFF图像,但图像尺寸小于我的预期.

    无论我如何更改-r选项,输出图像都具有相同的大小.

    这里发生了什么?

  2. 输出TIFF图像有一些压缩,我应该如何更改gs选项,使它们不包含任何压缩?

    http://pages.cs.wisc.edu/~ghost/doc/cvs/Devices.htm#TIFF 有几个选项可供选择,但在我看来,没有人的意思是"8位黑白"+"无压缩".

有人如何解决这两个问题?

pdf tiff ghostscript

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

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

我想知道鬼本?我已经看到一些软件需要它,比如可爱的 pdf 等。它实际上是做什么的?为什么使用它?

提前致谢!!

ghostscript

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

Ghostscript PDF 到 PNG:输出始终为 595x842 (A4)

我尝试将 PDF 转换为 PNG,但输出图像始终为 A4,但是源 PDF 非常大。这是我的命令:

-dNOPAUSE ^
-dBATCH ^
-dSAFER ^
-sDEVICE=png16m ^
-dFirstPage=1 ^
-sOutputFile="D:\PDF.png" ^
 "D:\PDF.pdf" ^
-sPAPERSIZE=a1
Run Code Online (Sandbox Code Playgroud)

我尝试了几个选项(-r、-g、-sDEFAULTPAPERSIZE),但都没有奏效。

如何强制输出图像尺寸?

PS:我的PDF文件

ghostscript

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

如何更改 Ghostscript 输出文件(在打印机后台处理程序中)

我正在使用 Ghostscript 通过命令行参数打印 PDF。但它在打印机后台处理程序中将打印文档的名称显示为 Ghostscript 输出。我想将其更改为自定义名称(作为字母名称)。

ghostscript

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

ImageMagick 中 GhostScript 的文件路径

我正在尝试使用 ImageMagick 在 PC 和 OSX 上将 PDF 转换为 PNG - 但我实际上无法在我的软件将用于其上的任何计算机上安装 GhostScript。

有没有办法将 GhostScript 与 ImageMagick 捆绑在一起,然后将 ImageMagick 的路径重定向到该包,这样我就可以使用它而无需在用户的计算机上正式“安装”它?

我找到了这个页面,但我无法理解如何更改 ImageMagick 中的 delegates.xml 文件以使其正常工作。我认为我必须更改此行的某些部分:

  <delegate decode="pdf" encode="eps" mode="bi" command=""@PSDelegate@" -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite "-sOutputFile=%o" -- "%i"" /> 
Run Code Online (Sandbox Code Playgroud)

但我不知道该怎么做——把路径放在哪里,或者路径应该基于什么——ImageMagick 的位置,或者其他什么?任何帮助将不胜感激。

更新 v1.2:我尝试使用命令行中的可执行文件将上面的委托更改为以下内容:

 <delegate decode="pdf" encode="eps" mode="bi" command="&quot;F:\ImageMagickTest\ImageMagick\gs\bin\gswin32c.exe&quot; -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite &quot;-sOutputFile=%o&quot; -- &quot;%i&quot;"/>
Run Code Online (Sandbox Code Playgroud)

但是当我运行程序时,我在 cmd 提示符下收到以下错误:

Microsoft Windows XP [Version 5.1.2600]
Run Code Online (Sandbox Code Playgroud)

(C) 版权所有 1985-2001 Microsoft Corp.

F:\Documents and …
Run Code Online (Sandbox Code Playgroud)

xml windows macos imagemagick ghostscript

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

使用 GhostScript 打印 PDF

我需要您对以下问题的支持,因为它拉了我一段时间。我们有一个小c#实用程序,它PDF使用GhostScript. 此打印按预期进行,但未能保留页面格式。但是,当我Adobe Acrobat代替GhostScript. 所以我认为,我在 GhostScript 的命令行参数上犯了一些明显的错误。

背景

以下是核心 c# 逻辑,它在每个页面上打印具有不同样式的给定 PDF 文件。给定的 PDF 文件有页面;

  1. 字体样式和颜色不一致
  2. 一些页面具有正常的字体大小,而其他页面则以超小字体打印
  3. 一些页面有推荐的边距,但其他页面的边距很小
  4. 一些页面是彩色的,其余的页面是灰色的。
  5. 一些页面是横向的,而其他页面是纵向的

简而言之,我要打印的 PDF 只不过是许多具有不同字体样式、大小、边距的小型 pdf 文档的合并(将单个 pdf 合并为一个大 pdf)。

问题

以下逻辑用于GhostScript(v9.02)打印 PDF 文件。尽管以下逻辑打印任何给定的 PDF,但它无法保留页面格式,包括页眉、页脚、字体大小、边距、方向(我的 pdf 文件具有横向和纵向的页面)。

有趣的是,如果我使用 acrobat 阅读器打印相同的 PDF,那么它将按预期与所有页面级格式一起打印。

PDF样本:第一节第二节

  void PrintDocument()
    {
         var psInfo = new ProcessStartInfo();
                psInfo.Arguments =
                    String.Format(
                        " -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile=\"\\\\spool\\{0}\" \"{1}\"",
                        GetDefaultPrinter(), @"C:\PDFOutput\test.pdf");
                psInfo.FileName …
Run Code Online (Sandbox Code Playgroud)

c# printing pdf postscript ghostscript

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

如何缩小tesseract生成的PDF的大小?

我的(网络)应用程序的设置如下:我得到用户上传的PDF文件,在它们上运行OCR并向他们显示OCRed PDF。由于所有内容都在线,因此最小化生成的PDF文件的大小是减少用户加载和等待时间的关键。

我从用户那里收到的文件是sample.pdf(我创建了一个包含原始文件以及在此处生成的文件的存档:https : //dl.dropboxusercontent.com/u/1390155/tess-files/sample .zip)。我使用tesseract 3.04并执行以下操作:

gs -r300 -sDEVICE=tiff24nc -dBATCH -dNOPAUSE -sOutputFile=sample.tiff sample.pdf
tesseract sample.tiff sample-tess -l fra -psm 1 pdf
Run Code Online (Sandbox Code Playgroud)

OCR的结果很好,但是现在生成的PDF的大小约为2.5倍

  • 原始pdf文件大小:60k
  • 最终PDF大小:14.7万

所以我问你,如何在保持OCR结果的同时减小生成的PDF的大小?

一种明显的解决方案是在生成tiff时降低分辨率,但是我不想这样做,因为它可能会影响OCR结果。

我尝试的第二件事是使用ghostscript减少了tesseract后的PDF大小:

gs -o sample-down-300.pdf   -sDEVICE=pdfwrite   -dDownsampleColorImages=true \
   -dDownsampleGrayImages=true   -dDownsampleMonoImages=true  \
   -dColorImageResolution=300   -dGrayImageResolution=300  \
   -dMonoImageResolution=300   -dColorImageDownsampleThreshold=1.0  \
   -dGrayImageDownsampleThreshold=1.5   -dMonoImageDownsampleThreshold=1.0 \
    sample-tess.pdf 
Run Code Online (Sandbox Code Playgroud)

这会有所帮助,生成的文件只有101K,因此约为原始文件的1.5倍。我可以接受,但它似乎也会影响OCR结果。例如,现在缺少“餐厅”和“比萨店”(第二行)之间的空白。

带有ghostscript的另一个(更简单)选项(使用ebook参数)导致PDF文件中的质量较差的43k文件,并且存在缺少空白的相同问题:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook \
    -dNOPAUSE -dBATCH  -dQUIET -sOutputFile=sample-ebook.pdf \
     sample-tess.pdf
Run Code Online (Sandbox Code Playgroud)

较低质量的PDF很好,但是我还是不想在OCR上妥协。

我已经使用PNG和JPEG完成了其他测试,但是OCR结果总是下降(甚至略有下降),并且结果PDF不会更小。例如,使用PNG:

convert -density 300 sample.pdf -transparent white sample.png
tesseract sample.png sample-tess-png -l fra -psm 1 pdf
Run Code Online (Sandbox Code Playgroud)

总数(55.50)丢失,最终PDF大小为149k。 …

pdf ocr pdf-generation tesseract ghostscript

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

对PDF文件的每一页进行截图

如何从PDF 文件的每一页制作屏幕截图并将结果保存为 PHP 中的图像?是否可以?

php pdf ghostscript

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

在 Windows 8 上用 Python 导入 Ghostscript

我一直在尝试将 ghostscript 导入 Python,以便将 pdf 文件转换为 .tiff 格式。

我在 Windows 8 上使用 Python 版本 2.7.10。

我已经使用 pip 成功下载并安装了 ghostscript,它出现在正确的位置 (...\Anaconda\Lib\sitepackages)。我已经确认可以将位于此目录中的其他包导入 Python。

我正在使用命令 import ghostscript

当我这样做时,我收到一条错误消息:

运行时错误:在注册表中找不到 Ghostscript DLL

回溯表明调用文件“ghoscript_init_.py”成功将_gsprint导入为gs。

但是,当导入函数尝试访问“ghostscript_gsprint.py”时,它会产生无法找到 Ghostscript DLL 的运行时错误。

我将不胜感激任何建议或提示。谢谢!

python ghostscript

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

Python &lt;没有这样的文件或目录:'gs'&gt; 即使在 Macintosh 上安装了 GhostScript 也会出错 *问题仍然存在!*

我在我的程序中实现了以下保存功能,它允许用户将他/她用 Turtle 在 Tkinter 画布上绘制的任何内容保存为 JPEG 文件。它的工作原理是首先捕获屏幕和 Tkinter 画布,然后基于它创建一个 postscript 文件。然后它将该 postscript 文件转换为 PIL(Python 成像库)可读文件类型,然后 PIL 将转换后的文件保存为 JPEG。我的保存功能如下所示:

def savefirst(): 
    # Capture screen and Tkinter canvas
    cnv = getscreen().getcanvas() 
    global hen
    # Save screen and canvas as Postscript file
    ps = cnv.postscript(colormode = 'color')
    # Open a Tkinter file dialog that allows to input his.her own name for the file
    hen = filedialog.asksaveasfilename(defaultextension = '.jpg')
    # Convert Postscript file to PIL readable format
    im = Image.open(io.BytesIO(ps.encode('utf-8')))
    # Finally save converted …
Run Code Online (Sandbox Code Playgroud)

python macos save ghostscript python-3.x

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