标签: ghostscript

如何使用 Ghostscript 从 pdf 文件获取 24 位深度的 LZW tiff

我正在使用 Ghostscript9.0,我尝试从 pdf 文件生成具有24 位深度的 LZW TIFF 图像,我总是使用以下命令获得位深度 = 1 GS

gswin32.exe -dSAFER -dBATCH -dNOPAUSE -r200 -sDEVICE=tifflzw -sOutputFile=tmp.tiff myfile.pdf
Run Code Online (Sandbox Code Playgroud)

我查了几本手册:

http://ghostscript.com/doc/current/Devices.htm

http://www.ghostscript.com/doc/8.54/Use.htm

但我没有找到任何参数来做到这一点。

我添加了一个图像示例比例,我想用它来生成gs

在此输入图像描述

在这里我们可以看到位深度 (profondeur de couleur) = 24 并且图像使用 LZW 压缩

pdf tiff image ghostscript

3
推荐指数
1
解决办法
5802
查看次数

Ghostscript 脚本或其他脚本,用于交错两个多页 pdf 文件中的奇数页和偶数页

我的扫描仪可以进纸,但不能进行双面扫描。因此,如果我扫描双面打印的多页文档,我最终会得到两个 pdf 文件,一个包含所有奇数页(奇数页 pdf 文件),另一个包含所有偶数页(奇数页 pdf 文件)。偶数页 pdf 文件)。

我觉得应该可以有一个 Ghostscript 脚本来合并两个文件,这样偶数页 pdf 文件中的每一页都将作为每个其他页面添加到奇数页 pdf 文件中。

有人知道该怎么做吗?

优选地,脚本将采用参数,使得第一个参数指定输出文件,第二个参数指定奇数页pdf文件,第三个参数指定偶数页pdf文件。

pdf ghostscript pdftk

3
推荐指数
1
解决办法
3061
查看次数

签名的 Ghostscript Postscript 打印驱动程序

我正在使用 Ghostscript ( ) 附带的 Windows postscript 打印驱动程序lib/ghostpdf.inf从打印作业生成 postscript 文件。

但是 postscript 驱动程序没有经过数字签名,因此 Windows 8 和 Windows Server 2012 不允许在不启动进入“允许未签名驱动程序”模式的情况下安装它。

您知道是否有任何签名版本可与最新的 Windows 版本一起使用?

如果情况并非如此,我可以自己编译和签名,但是我无法在http://git.ghostscript.com/ghostpdl.git上提供的 git 存储库中找到 postscript 打印驱动程序的源代码。因为我不熟悉构建驱动程序,所以我可能只是监督它。

有人可以给我一个提示,我可以在哪里找到 postscript 驱动程序文件来自己编译它吗?

编辑: .INF 文件如何告诉 Windows 驱动程序二进制文件所在的位置?我已经研究过“ClassGUID”,但它对于所有驱动程序都是相同的,并且注册表项说明了有关C:\Windows\System32\ntprint.dll. 我认为这对于这个问题来说并不重要,是吗?

windows printing driver postscript ghostscript

3
推荐指数
1
解决办法
8906
查看次数

保留文件名 Ghostscript

是否可以转换 PDF 文件并为输出使用与输入 PDF 相同的名称?

我知道可以通过执行单独的重命名命令来解决问题。但我想弄清楚这是否可以用 GS 来完成。

现在我可以通过执行以下操作来更改 PDF 版本:

gswin32c -q -dNOPAUSE -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
         -sOutputFile=a.pdf -dBATCH b.pdf
Run Code Online (Sandbox Code Playgroud)

但是输入文件和输出文件名称必须不同,如果我这样做......

gswin32c -q -dNOPAUSE -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
         -sOutputFile=b.pdf -dBATCH b.pdf
Run Code Online (Sandbox Code Playgroud)

......它不起作用。

我认为当文件试图覆盖自己时,内部有些东西搞砸了。

有没有办法只使用 Ghostscript 来解决这个问题?

pdf ghostscript

3
推荐指数
1
解决办法
1590
查看次数

用于将特定 PDF 页面打印成图像的 Powershell 脚本

我如何更改此 powershell 脚本

Start-Process –FilePath “C:\Data\PROJECTS\ABC.pdf” –Verb Print -PassThru | %{sleep 10;$_} | kill
Run Code Online (Sandbox Code Playgroud)

到:

  1. 打印 PDF 的特定页面,
  2. 直接到图像(例如 png、jpg、tif 等),以及
  3. 相应地保存它们?

例如,我想将 ABC.pdf 的第 3、4、7 页打印成三个单独的文件,分别称为 ABC_3.png、ABC_4.png 和 ABC_7.png;图像文件可以是任何格式(.png、.jpg、.tif 等)。

我计划调用 .csv 列表来获取所有参数值(例如要打印的页码、带页码的输出名称、新文件位置的文件路径等),但我不知道如何设置 powershell 语法。谢谢你。

更新

我使用下面的脚本在此任务上取得了进展,该脚本调用了 ghostcript。除了我似乎无法将我的 -dFirstPage 和 -dLastPage 设置为来自我的 csv 的参数之外,它执行了 1-3 项操作……我收到了 powershell 错误:

Invalid value for option -dFirstPage=$pg, use -sNAME = to define string constants
Run Code Online (Sandbox Code Playgroud)

如果我用一个数字替换 $pg ,它似乎工作正常。我将如何使用 -sNAME 来解决这个问题?

新脚本

#Path to your Ghostscript EXE
$tool = 'C:\Program Files\gs\gs9.19\bin\gswin64c.exe'

$files = Import-CSV …
Run Code Online (Sandbox Code Playgroud)

printing pdf powershell ghostscript

3
推荐指数
1
解决办法
3728
查看次数

如何在 C# 中引用 Ghostscript DLL

我正在使用 C# 包装器使用 Ghostscript 将 PDF 转换为图像,但是我似乎无法正确引用 dll。我将 DLL 存储在 bin 文件夹中(也不知道这是否是保存它的最佳位置)这是我的代码:

 byte[] fileData = null;
            using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
            {
                fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
            }

    string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

    Ghostscript.NET.Rasterizer.GhostscriptRasterizer rasterizer = null;
    Ghostscript.NET.GhostscriptVersionInfo vesion = new Ghostscript.NET.GhostscriptVersionInfo(new Version(0, 0, 0), path + @"\gsdll64.dll", string.Empty, Ghostscript.NET.GhostscriptLicense.GPL);
    Stream inStream = new MemoryStream(fileData);
    MemoryStream outStream = new MemoryStream();
    List<Image> imageList = new List<Image>();
    using (rasterizer = new Ghostscript.NET.Rasterizer.GhostscriptRasterizer())
    {
        rasterizer.Open(inStream, vesion, false);
         for (int i = 1; i <= rasterizer.PageCount; …
Run Code Online (Sandbox Code Playgroud)

c# pdf ghostscript

3
推荐指数
1
解决办法
8095
查看次数

如何使用 Ghostscript 合并目录中的所有 PDF

我怎样才能读取目录 d:\ 中包含的文件而batchscript不是像这样一个一个的文件。我已经尝试过以下方法:

@echo off

"C:\Program Files\gs\gs9.25\bin\gswin32c.exe" -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dPDFSETTINGS=/printer -dColorImageResolution=90 -dAutoRotatePages=/None -dBATCH -dNOPAUSE -sOutputFile=d:\d\koran.pdf *d:\a\01.pdf d:\a\02.pdf d:\a\03.pdf d:\a\04.pdf d:\a\05.pdf d:\a\06.pdf d:\a\07.pdf d:\a\08.pdf d:\a\09.pdf d:\a\10.pdf d:\a\11.pdf d:\a\12.pdf d:\a\13.pdf d:\a\14.pdf d:\a\15.pdf d:\a\16.pdf d:\a\17.pdf d:\a\18.pdf d:\a\19.pdf d:\a\20.pdf d:\a\21.pdf d:\a\22.pdf d:\a\23.pdf d:\a\24.pdf*

exit
Run Code Online (Sandbox Code Playgroud)

pdf merge ghostscript

3
推荐指数
1
解决办法
7344
查看次数

Ghostscript 不会生成带有在 DOCINFO 中检测到的 UTF16BE 文本字符串的 PDF/A - 尽管 PDFACompatibilityPolicy 另有说明

我正在尝试使用以下命令行将普通 PDF 文件转换为 PDF/A:

gs -dPDFA -dBATCH -dNOPAUSE -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=output.pdf input.pdf
Run Code Online (Sandbox Code Playgroud)

但是,我收到消息

GPL Ghostscript 9.26: UTF16BE text string detected in DOCINFO cannot be represented in XMP for PDF/A1, reverting to normal PDF output
Run Code Online (Sandbox Code Playgroud)

gs 恢复为普通 PDF。显然,该消息源于gs 的这个代码片段,但我们在那里读到该消息仅在pdev->PDFACompatibilityPolicy == 0. 我的理解是-sPDFACompatibilityPolicy=1命令行中的参数旨在防止这种情况。

问:为什么 gs 表现得好像所需的策略是 0 而不是 1?还有另一种方法可以将策略设置为 1 吗?

此外,正如它让我感到好奇:

问:有没有办法查看导致原始问题的奇怪 DOCINFO 类型或首先预防它?使用 Acrobat Reader,我看不到文件中的任何“可疑”内容。如果有帮助: input.pdf 是在 Word 的 Window 上生成的(我什至尝试使用 UseISO19005-1 设置,该设置应该生成 PDF/A,但无论如何都会出现问题)。

pdf pdf-generation ghostscript

3
推荐指数
2
解决办法
2126
查看次数

如何在 Windows 10 中从命令行访问 Ghotscript?

我不知道如何从命令行运行 Ghostscript。它包含在我的路径中: 路径详细信息

更改后我重新启动了电脑。但是我无法通过命令提示符访问它: cmd提示尝试失败

请帮忙!提前致谢。

ghostscript command-line-tool

3
推荐指数
1
解决办法
1911
查看次数

如何在postscript文件上创建程序覆盖文本?

我有一些postcript格式的图表,由gnuplot生成.我需要在图表上放置一些识别信息.如何编写一些指令来执行此操作?我想在图表的右上角写一个数字(.ps文件).

pdf shell graphics postscript ghostscript

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