c# – 如何在将XPS转换为PDF时获取GhostPDL进度通知?

c# – 如何在将XPS转换为PDF时获取GhostPDL进度通知?,第1张

概述截至目前,我正在使用Process调用GhostPDL将我的XPS文件转换为PDF文件. 问题是有时这些转换需要一段时间.目前我正在使用通知让用户等待.但是我希望有某种进度条.我读到我可以使用StandardError,但我甚至不知道如何从命令行生成GhostPDL输出进度状态.我已经尝试搜索手册,看看有没有争论,但我没有运气. 有没有办法打开状态输出甚至是这样,将XPS转换为PDF的替代方法?我 截至目前,我正在使用Process调用GhostPDL将我的XPS文件转换为pdf文件.

问题是有时这些转换需要一段时间.目前我正在使用通知让用户等待.但是我希望有某种进度条.我读到我可以使用StandardError,但我甚至不知道如何从命令行生成GhostPDL输出进度状态.我已经尝试搜索手册,看看有没有争论,但我没有运气.

有没有办法打开状态输出甚至是这样,将XPS转换为pdf的替代方法?我对任何想法持开放态度.

解决方法 在运行Ubuntu Natty的联想T500笔记本电脑上,使用GhostPDL 9.02,使用2 GByte RAM,将Microsoft提供的38页XPS( ExchangeServer2007_ AdminComp_ chapter_02.xps)转换为完美的pdf文档需要2.3秒:

time gxps \   -dDEBUG \   -o ExchangeServer2007_adminComp_chapter_02.xps.gxps.pdf \   -sDEVICE=pdfwrite \    ExchangeServer2007_adminComp_chapter_02.xps real   0m2.213s user   0m1.852s sys    0m0.200s

但是,我认为gxps(可以将XPS转换为pdf的GhostPDL命令目前没有提供任何标准方法使它在stdout上更加健谈 – 甚至-dDEBUG都没有工作)…

更新:我不熟悉任何其他可以直接将XPS转换为pdf的工具,但我知道其中有很多.如果您查阅Google搜索结果,您可能会更幸运.

当然,您始终可以将XPS打印到“pdf打印机”.在命令行上有不同的方法可以做到这一点,这可能会给你一些进展反馈.

如果你事先知道你需要转换多少页面,那么GhostPDL的一个(糟糕的)解决方法可能是使用像-dFirstPage = 1 -dLastPage = 10之类的结构将块转换为文件并通知用户当前页面正在处理来自NNN的1-10.

更新2:以下是在处理每个页面时如何获得有关stdout的反馈的方法:

time gxps \   '-Z|' \   -o ExchangeServer2007_adminComp_chapter_02.xps.gxps.pdf \   -sDEVICE=pdfwrite \    ExchangeServer2007_adminComp_chapter_02.xps

注意-Z |周围的单引号.第二个字符是管道标志,而不是大写字母…结果:

start part /FixeddocumentSequence.fdseq fixdoc /documents/1/Fixeddocument.fdoc page /documents/1/Pages/1.fpage w=0 h=0 page /documents/1/Pages/2.fpage w=0 h=0 page /documents/1/Pages/3.fpage w=0 h=0 [....] page /documents/1/Pages/37.fpage w=0 h=0 page /documents/1/Pages/38.fpage w=0 h=0

感谢Ghostscript开发人员Tor Anderson,他在Freenode的#ghostscript IRC频道给了我决定性的暗示.

总结

以上是内存溢出为你收集整理的c# – 如何在将XPS转换为PDF时获取GhostPDL进度通知?全部内容,希望文章能够帮你解决c# – 如何在将XPS转换为PDF时获取GhostPDL进度通知?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1228140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存