我需要从扫描仪中的一堆多页PDF文件中提取TIFF图像.在扫描期间,我指定了600dpi的分辨率.
这是我用来生成TIFF图像的代码:
gs -q -dNOPAUSE -sDEVICE=tiffg4 \
-sOutputFile=a_page%02d.tif a.pdf -r600x600 -c quit
Run Code Online (Sandbox Code Playgroud)
这给了我正确数量的TIFF图像,但图像尺寸小于我的预期.
无论我如何更改-r选项,输出图像都具有相同的大小.
这里发生了什么?
输出TIFF图像有一些压缩,我应该如何更改gs选项,使它们不包含任何压缩?
http://pages.cs.wisc.edu/~ghost/doc/cvs/Devices.htm#TIFF 有几个选项可供选择,但在我看来,没有人的意思是"8位黑白"+"无压缩".
有人如何解决这两个问题?
我想知道鬼本?我已经看到一些软件需要它,比如可爱的 pdf 等。它实际上是做什么的?为什么使用它?
提前致谢!!
我尝试将 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 通过命令行参数打印 PDF。但它在打印机后台处理程序中将打印文档的名称显示为 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=""F:\ImageMagickTest\ImageMagick\gs\bin\gswin32c.exe" -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dEPSCrop -sDEVICE=epswrite "-sOutputFile=%o" -- "%i""/>
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) 我需要您对以下问题的支持,因为它拉了我一段时间。我们有一个小c#实用程序,它PDF使用GhostScript. 此打印按预期进行,但未能保留页面格式。但是,当我Adobe Acrobat代替GhostScript. 所以我认为,我在 GhostScript 的命令行参数上犯了一些明显的错误。
背景
以下是核心 c# 逻辑,它在每个页面上打印具有不同样式的给定 PDF 文件。给定的 PDF 文件有页面;
简而言之,我要打印的 PDF 只不过是许多具有不同字体样式、大小、边距的小型 pdf 文档的合并(将单个 pdf 合并为一个大 pdf)。
问题
以下逻辑用于GhostScript(v9.02)打印 PDF 文件。尽管以下逻辑打印任何给定的 PDF,但它无法保留页面格式,包括页眉、页脚、字体大小、边距、方向(我的 pdf 文件具有横向和纵向的页面)。
有趣的是,如果我使用 acrobat 阅读器打印相同的 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) 我一直在尝试将 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 的运行时错误。
我将不胜感激任何建议或提示。谢谢!
在Visual Studio 2013中使用nuget,我在我的Windows x64 PC上将Ghostscript.NET安装到我的项目中.
为了确保我没有疯狂,我检查了一下:
PM> Install-Package Ghostscript.NET
'Ghostscript.NET 1.2.0' already installed.
Project already has a reference to 'Ghostscript.NET 1.2.0'.
PM>
Run Code Online (Sandbox Code Playgroud)
该项目由多个开发人员使用.它针对任何CPU,并且需要保持这种状态.
这是我的代码:
public static void GhostscriptNetProcess(String fileName, String outputPath)
{
var version = GhostscriptVersionInfo.GetLastInstalledVersion();
var source = (fileName.IndexOf(' ') == -1) ? fileName : String.Format("\"{0}\"", fileName);
var output_file = (outputPath.IndexOf(' ') == -1) ? outputPath : String.Format("\"{0}\"", outputPath);
var gsArgs = new List<String>();
gsArgs.Add("-q");
gsArgs.Add("-dNOPAUSE");
gsArgs.Add("-dNOPROMPT");
gsArgs.Add("-sDEVICE=pdfwrite");
gsArgs.Add(String.Format(@"-sOutputFile={0}", output_file));
gsArgs.Add("-f");
gsArgs.Add(source);
var processor = new GhostscriptProcessor(version, …Run Code Online (Sandbox Code Playgroud) 我有一个PDF文档,其中所有页面大小都不同.我想将每个页面大小(也就是画布)调整为文档中找到的最大宽度和最大高度,然后将其居中.
我已经习惯了pdftk和Ghostscript,但如果它更好,我可能会考虑其他一些FOSS工具.
怎么做?谢谢你提前.
ghostscript ×10
pdf ×4
c# ×2
imagemagick ×1
macos ×1
pdftk ×1
php ×1
postscript ×1
printing ×1
python ×1
shell ×1
tiff ×1
windows ×1
xml ×1