使用 Ghostscript 将 PDF 转换为 PostScript:大文件打印时出现问题

2023-12-27

我目前正在使用 Ghostscript 将 500 页 PDF 文件转换为 PostScript。

我使用的是 Windows 7、Ghostscript x64 v 9.16 和柯达 Digimaster 商业打印机。

我使用 GhostScript 的以下参数将 PDF 转换为 PS:

C:\Program Files\gs\gs9.16\bin\gswin64c.exe" 
-dCompressFonts=true 
-dSubsetFonts=true 
-dEmbedAllFonts=true 
-sFONTPATH=C:\Windows\Fonts\ 
-dNOPAUSE 
-dBATCH 
-sDEVICE=ps2write 
-sOutputFile="PostScript.ps" 
"MyPdf.pdf"

然后我添加%KDK(专有)命令通过使用来指示哪些页面需要在哪张纸上打印%KDKSlip基于打印机文档的命令。

下面的示例将以 Letter 双面打印方式打印除第 1/2 和 5/6 页之外的所有页面。第 1/2 页将打印在名为“YellowPerf”的纸张上,而第 5/6 页将打印在“TriPerf”上:

 %!PS-Adobe-3.0
 %%BoundingBox: 0 0 612 792
 %%HiResBoundingBox: 0 0 612.00 792.00
 %%Creator: GPL Ghostscript 916 (ps2write)
 %%LanguageLevel: 2
 %%CreationDate: D:20150506143059-05'00'
 %%Pages: 8
 %%DocumentMedia: Letter 612 792 0 white ()
 %%+ YellowPerf 612 792 0 yellow ()
 %%+ TriPerf 612 792 0 white ()
 %KDKRequirements: duplex
 %KDKSlip: YellowPerf duplex 1
 %%+ TriPerf duplex 5
 %%EndComments
 %%BeginProlog

然后使用 Windows 命令将其发送到 Kodak Digimaster 打印机:

> COPY PostScript.ps PrinterName

这对于较小的文档效果很好,但我在处理较大的页面集时遇到了问题。

当我尝试使用 500 页 PDF 到 Postscript 文件打印到 Digimaster 时,出现错误:“繁忙,请勿重置 RIP”。

那些不起作用的文件大小:

PostScript 文件大小:52 MB
PDF 文件大小:41 MB

有效的文件大小:

PostScript 文件大小 1MB
PDF 文件大小:.8 MB

为什么这对于较小的文件可以正常工作,但对于较大的文件却很糟糕?

有人有什么建议吗?


它不一定是filesize导致您的问题的 PostScript:

  • 它可能是 PostScript 本身,或者
  • 可能是您在插入(专有)PS 文件时编辑了错误%KDK-评论。

您确定您的文本编辑器不会默默地更改换行字符吗?!这也可能改变 PostScript 的二进制部分!

另外,我不确定是否copy命令确实像它应该的那样处理打印作业。我更喜欢lpr命令(啊...在您的 Windows 版本上仍然可用吗?!)

为了调试这个问题并探索成功打印的几种不同途径,我会尝试几个不同的步骤:

To debug

  • 发送原始 PostScript,不添加任何内容%%KDKDSC 标头注释,发送至打印机。

    该打印机型号有一个很好的功能可供您使用:您可以检查其 RIP 是否完整且成功地处理输入文件,而无需在(错误的)纸张上输出 500 页并因此浪费它(之后您还需要丢弃它) ——工作量也太大了)。只需单击其用户界面监视器上的红色“停止”按钮即可。

    那个人是否成功完成了 RIP 过程?

    是的?现在您甚至可以打印它。在此之前,您甚至可以通过单击界面上的某个按钮(但不记得确切的按钮标签)来修改作业设置以选择特定纸盘。然后“释放”作业即可打印。

    如果有效,您可以再次将注意力转移到您的%%KDK线对了。

    如果没有,您必须尝试另一条路线。

检查不同的 PDF 到 PS 转换器是否正在工作

  • 借助以下命令创建 PostScript 文件pdftops (see here为了pdftops.exe版本——阅读自述文件以查看哪些选项可用)。

    与上面类似:首先查看是否完成了 RIP 过程。然后继续你的%KDK操纵....

检查直接 PDF 打印是否正常

  • Digimaster模型可以直接使用PDF。 (好吧,它在内部使用自己的 PDF 到 PS 转换器,但这对外部不可见 - 所以它不really算作 PDF RIP...)

  • 如果有效,您甚至可以在前面添加适当的内容%KDK对 PDF 文件的注释,类似于下面的行(不要指望我能正确地获取详细信息,它是我的脑海中的想法,而且记忆已经有几十年了!):

    %!PS-Adobe-3.0
    %%.........................
    %%DocumentMedia: ..........
    %KDKRequirements: .........
    %KDKInserts: ..............
    %KDKSlip: .................
    %KDKBody: .................
    %KDKCovers: ...............
    %KDKPDFPrintAnnotations: on 
    %KDKPDFFitToPage: on
    %KDKBinaryOK: on 
    <esc>%-12345X
    %%Emulation: pdf
    %PDF-1.5
    %...here follow the lines of the original PDF file...
    ...
    

通过发送职位“柯达打印文件下载器” (KPD)

  • 对于 Windows,曾经有所谓的“柯达打印文件下载器”(KPD)。 KPD 是一个应用程序,而不是打印机驱动程序。不确定它是否仍然可用。

  • 您可以打开其 GUI,然后将 PS、PDF、PCL 或 TIFF 文件加载到其要打印的作业列表中。然后选择一些作业选项(如托盘、装订、排序等)。最后,将作业发送给 Digimaster...

  • KPD 本质上做同样的事情,正如你想要实现的那样:插入%KDK命令写入文件头。但您希望使用脚本或编辑器来完成此操作(并且可能在工作后通过批处理过程自动完成)。

  • KPD 需要交互式用户活动,并且无法编写脚本。

  • 但是你可以(ab-)使用它来拦截它从 Windows 假脱机系统创建的文件,研究它们,然后调整你的脚本工作,以便它们也能工作......


Update

(I had wanted to add this already in my initial answer. But time ran out, so I skipped it for the time being..)

直接在打印机 UI 上观察 RIP 处理

  • Digimaster 打印机有自己的内置触摸屏或平板显示器或管显示器(取决于型号的使用年限)。他们通常还有一名全职操作员,他非常了解机器及其调整和特性。机器可能距离发送作业的用户很远。

  • 因此,在调试打印问题时应执行以下操作:

    • 要求操作员将打印机设置为“停止打印”,但仍“接收新作业”。
    • 提交您想要的任何工作。
    • 走到打印机及其操作员面前。
    • Release the job for RIP-ping and observe what happens:
      • 您可能会看到一切顺利并完成,直到最后一页(您知道您提交了多少页,对吧?)
      • 或者您可能会看到作业在某个页码处中止。
      • 或者您可能会看到打印机 RIP 在某一页(或几页)上花费了很长时间,但最终完成了作业。
      • 或者您可能会看到打印机 RIP 永远挂在某个页面上。
      • Or...

    无论如何,这里可以观察到的细节可能会提供有关下一步该去哪里寻找的重要线索......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Ghostscript 将 PDF 转换为 PostScript:大文件打印时出现问题 的相关文章

  • 如何编辑和更新pdf文件?

    我正在使用 ASP NET 开发一个 Web 应用程序 其中一项要求要求我打开包含表单字段的给定 pdf 文件 填写字段 例如选中复选框 从选择输入中选择值以及在文本框中输入文本等 设置字段后 我需要将其提交到服务器并将其另存为新的 pdf
  • 如何根据字体计算字符数?

    对于给定 PDF 文件中的每个页面 可以列出所使用的字体 pdffonts f 10 l 10 file pdf name type encoding emb sub uni object ID none Type 3 Custom yes
  • ReactJS React-pdf 错误“无法加载 PDF 文件。”经过一些尝试

    我创建了一个 React js 应用程序create react app我正在尝试react pdf查看 pdf 我遇到的问题是我的代码有时有效 有时无效 当我第一次加载应用程序时 pdf 总是加载得很好 但如果我访问网站上的其他链接 ur
  • 如何使用 iText 对 pdf 进行数字签名?

    如何使用 iText 签署 pdf 我正在经历这个LINK http itextpdf sourceforge net howtosign html但不了解 my private key pfx 我真的需要数字签名证书吗 请澄清我 提前致谢
  • 如何使用 PDFBox 创建转到*上一视图*的链接?

    通过使用 PDFBox 可以轻松创建指向特定页面或页面视图的链接PDPageDestination 例如 以下代码将创建一个转到第 9 页的链接 PDAnnotationLink link new PDAnnotationLink PDPa
  • python 中打印变量和字符串

    好吧 我知道如何打印变量和字符串 但是我如何打印类似 我的字符串 card price 的内容 它是我的变量 我的意思是 这是我的代码 print I have and here I would like to print my varia
  • PostScript:“cvs”是否终止字符串缓冲区?

    使用时的一个想法cvs是通过重用字符串缓冲区来帮助垃圾收集器 例如 s 5 string def s 2 cvs s 66 cvs 然而 当在循环中执行此类操作时 实际在缓冲区中找到的字符串是 40 0 30 0 20 0 10 0 0 0
  • 如何使用 WiFi Direct 打印文本文件

    我有一个正在运行的 Android 应用程序 可以显示用户统计信息 我想将纯文本格式 txt 的小报告发送到 WiFi Direct 打印机 我已经下载了示例demo https developer android com guide to
  • 如何在 ionic 应用程序中显示 pdf 文件而无需下载

    我所做的事情 在应用程序浏览器中使用 使用谷歌文档 使用的网页视图 所以我尝试了所有这些方法来使用 ionic 在 Android 设备中显示 pdf 文件 但没有用 我可以在所有这些方法中看到下载按钮 谁能告诉我如何在没有用户下载选项的情
  • Python PIL 由于某种原因无法打开 PDF

    所以我的程序能够打开 PNG 但不能打开 PDF 所以我这样做只是为了测试 但它仍然无法打开 甚至是一个简单的 PDF 我不知道为什么 from PIL import Image with Image open r Adams K a pd
  • Electron 中的收据热敏打印机

    我需要找到一种在 javascript 中打印收据的方法Electron 我已经尝试过了QZ TRAY但由于 Electron 它不起作用 我也尝试过节点热敏打印机但它也从来没有对我有用 这里有人知道如何在 javascript Elect
  • 使用什么来生成包含动态生成的条形码的 pdf 文档(Java)?

    我的要求要求生成包含任意文本和条形码的 pdf 文档 我有相关的question https stackoverflow com q 6625849 59470它解决了pdf生成部分 但在这里我想知道如何在Java中将条形码合并到pdf中
  • 禁用页面的浏览器打印选项(页眉、页脚、边距)?

    我在 SO 和其他几个网站上看到过以几种不同的方式提出这个问题 但大多数都太具体或过时了 我希望有人能在这里提供明确的答案 而不是迎合猜测 当有人在浏览器中打印时 有没有办法使用 CSS 或 javascript 更改默认打印机设置 当然
  • 如何让 PDF 内容(由 Spring MVC 控制器方法提供)显示在新窗口中

    我是 Spring MVC 的新手 但它的功能给我留下了深刻的印象 我正在使用 3 1 0 RELEASE 并且我必须显示 PDF 来响应 form form 提交 这是我在控制器中编写的 小 代码 RequestMapping value
  • iTextSharp 从 WPF 固定文档生成 PDF

    我有一个简单的 WPF 应用程序 可以显示和打印一些内容 使用固定文档进行报告 如何使用免费且开放的解决方案从中生成 PDF 比如iTextSharp WPF 固定文档 也称为 XPS 文档 是对 PDF 的明显改进 它具有 PDF 所缺乏
  • 从 Gmail 获取 pdf 附件作为文本

    我在网络和 Stack Overflow 上搜索但没有找到解决方案 我尝试做的事情如下 我通过邮件收到某些附件 我希望将其作为 纯 文本进行进一步处理 我的脚本如下所示 function MyFunction var threads Gma
  • 如何使用回形针对多页 pdf 进行缩略图

    我想让 Paperclip 为上传的多页 PDF 文件的每一页创建 2 个缩略图 我正在运行 Paperclip 2 3 1 1 并在我的资产模型中使用它 has attached file asset styles gt medium g
  • 将隐藏(生物识别)数据附加到 pdf 上的数字签名

    我想知道是否可以使用 iText 我用于签名 或 Java 中的其他工具在 pdf 上添加生物识别数据 我会更好地解释一下 在手写板上签名时 我会收集签名信息 例如笔压 签名速度等 我想将这些信息 java中的变量 与pdf上的签名一起存储
  • Grails 渲染 PDF 文件

    我正在尝试在网页中呈现 PDF 文件 但使用以下语法时 我得到了一个奇怪的字符组合 render file new File path to file pdf fileName myPdfFile pdf 有谁知道除了上面的行之外我还需要添
  • 使用 Pyqt4 从 URL 下载数千个 PDF

    理想情况下 我试图从给定网站下载数千个 PDF 然而 由于某种原因 它甚至无法下载 100 个 PDF 我不知道为什么 这是代码 usr bin env python import time from pyPdf import PdfFil

随机推荐

  • 在 UI 中为控制器内的操作添加嵌套分组部分

    动作分组中是否可以有小节 我们目前使用基于控制器的区分来对功能进行分组 但托管大量控制器并且可以使用进一步的嵌套 换句话说 我知道操作可以按以下方式分组 排序 但可以多次分组 c GroupActionsBy apiDesc gt apiD
  • 如何使用 R 从需要 cookie 的 SSL 页面下载压缩文件

    我正在尝试从 https 页面下载一个文件 该页面需要按下 我同意 按钮 然后存储 cookie 如果这个答案在某个地方很明显 我很抱歉 当我直接在 Chrome 中打开网页并单击 我同意 时 文件开始自动下载 我尝试复制这个例子 http
  • 是否可以在服务器端缓存一个asp页面?

    假设您有一个大型复杂的索引页面 其中显示新闻文章和内容 它不会经常改变 您能否以某种方式将其缓存在服务器端 这样请求就不会强制服务器在每次有人访问它时动态生成整个页面 或者 ASP NET 会自动执行此操作吗 如果是这样 它如何知道某些内容
  • 使用特定字符串作为每个列名称的前缀?

    我试图manually将某些行映射到其适当类的实例 我知道我需要使用每个表的每一列 并将一个表中的所有这些列映射到给定的类中 但是 我想知道是否有更简单的方法可以做到这一点 现在 我有一堂课叫School和一个名为User 每个类都有一个N
  • 其他浏览器是否实现了条件注释?

    IE 允许您根据浏览器的注释条件检测正在运行的 IE 版本 我实际上不知道他们是否这么称呼 如果不是 有人可以纠正我 css code here 有谁知道其他浏览器是否效仿他们的示例来确定他们正在使用的浏览器版本 css code here
  • 点击或延迟后 jQuery 淡出

    我正在网站上显示一个消息框 我希望能够在单击时或 X 秒后淡出 问题是delay 函数取代了click 功能使得即使您单击关闭您仍然需要等待时间 这是 jQuery document ready function close green c
  • 运行全新安装的 iPython 时出错

    我正在使用 virtualenvwrapper 因此任何人都可以轻松地重现它 但是使用也会发生这种情况pip直接在我的系统上 安装 iPython 后pip 我将无法运行它 注意我使用的是 Python 2 解释器 尽管如果我使用 Pyth
  • 在 iOS9 上编辑 UITextField 时向上移动键盘

    让我的键盘向上移动以发现UITextField在我的 iOS 应用程序中 我曾经实现过这个答案 https stackoverflow com a 6908258 3855618 https stackoverflow com a 6908
  • 无法将文本视图的文本垂直居中

    已解决 我必须添加android fillViewport true 到 ScrollView 解决了文本不垂直居中的问题 我知道这个问题之前已经被回答过很多次了 但我仍然无法将文本视图的文本垂直居中
  • Amazon EC2 作为网络服务器? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我最近对可用的不同托管类型进行了很多思考 我们可以从欧洲的 EC2 实例 我们位于瑞典 获得相当不错的延迟 平均 并且成本相当不错 显然 扩大和
  • 访问 Ember-CLI 嵌套控制器

    这是我的目录结构 controllers restaurant items js index js restaurant js 我的路由器声明 this route restaurants path restaurants this res
  • 快速生成随机集,蒙特卡罗模拟

    我有一组大约 100 个数字 我希望对这组数字执行 MC 模拟 基本思想是我完全随机化该组 对前大约 20 个值进行一些比较 检查 存储结果并重复 现在 实际的比较 检查算法非常快 它实际上在大约 50 个 CPU 周期内完成 考虑到这一点
  • 当客户端关闭与 Django/WSGI 应用程序的连接时,如何防止“IOError:无法写入数据”?

    我有一个 iPhone 应用程序 它使用 Python Django 和 Piston 实现的 Web 服务 通过 WSGI 在 apache 服务器上运行 有时 应用程序会在呼叫完成之前关闭与服务器的连接 当它这样做时 会导致 Tue S
  • 在Python中对字母数字字典键进行排序[重复]

    这个问题在这里已经有答案了 我有一个键字典 如 A1 A15 B1 B15 等 运行dictionary keys sort 会产生 A1 A10 A11 def sort keys dictionary keys dictionary k
  • 通过 jquery geocoder.geocode 进行地址地理编码(400 项)

    我正在尝试解析包含 400 个地址的 json 并在每个位置设置地图图标 我的问题是 当我循环遍历项目时 出现错误 OVER QUERY LIMIT 但是使用 google geocode api 设置位置的最佳方法是什么 我的函数如下所示
  • 单击 URL 将打开默认浏览器

    我已经在我的中加载了一个外部URLWebView 现在我需要的是 当用户单击加载的页面上的链接时 它必须像普通浏览器一样工作并在相同的位置打开链接WebView 但它打开默认浏览器并加载页面 我已经启用了 JavaScript 但它仍然不起
  • 带有 android:autoVerify="true" 的意图过滤器 - 安装时从未验证,默认应用程序链接不起作用

    我在 Android 应用程序中使用branch io SDK 并希望使我的应用程序成为 Android 6 上分支链接的默认处理程序 如下所述here http developer android com training app lin
  • Java 库类的源代码

    在哪里可以找到 Java 库类的源代码 我的意思是课程rt jar 平台 Windows 对于具有单独 JRE 和 JDK 下载的旧版本 Java 请下载 JDK 公共类的源代码位于 src zip 中
  • 计算列中值的频率[重复]

    这个问题在这里已经有答案了 我有不同项目的数据 这些项目的路径 A E 和可能性 不太可能 可能 或 可能 数据如下所示 但有更多项目 因此有更多行 Project Pathway Likelihood 1 Red A unlikely 2
  • 使用 Ghostscript 将 PDF 转换为 PostScript:大文件打印时出现问题

    我目前正在使用 Ghostscript 将 500 页 PDF 文件转换为 PostScript 我使用的是 Windows 7 Ghostscript x64 v 9 16 和柯达 Digimaster 商业打印机 我使用 GhostSc