我每个月都有数以百万计的Post文件。每个文件各有4-5页.除了第一页之外,每一页的内容都非常少。因此,虽然文件中的内容并不太大,但也存在不必要的纸张浪费。
我正在寻找一些工具,可以压缩第2页的最后或修剪未使用的空白,以便有最佳的使用纸。
我得到了PSUTILS有PSNUP命令,但它也没有完全满足我的解决方案。
任何有想法的人都可以在这个问题上提供帮助。
我的示例Post文件可以从
https://www.dropbox.com/s/2z9oirsvxzf13di/1010472622.ps
以上是一个三页后脚本文件。第二和第三页可以被俱乐部,以有最佳的纸张使用。
敬请详细指导
问候‘code.box@rediffmail.com’
发布于 2017-02-04 10:30:24
这是一个有趣的问题。这是一个部分的答案。
要引用对类似问题的类似回答,您必须解决两个问题:
gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox Ghostscript打印出一个边框,例如:
%%BoundingBox: 14 37 570 719
%%HiResBoundingBox: 14.308066 37.547999 569.495061 718.319158这四个数字是页面上可见内容的边框的左上角和右下角的x,y坐标。它们在默认的PostScript语言坐标系中表示。
对于#2,以某种方式捕获边界框输出,并使用它生成一个修改后的输出文件,并在每个输出页上组合多个输入页。
如果您的PostScript语言文件遵循文件结构公约,那么您就有机会在PostScript语言中做到这一点。如果不是,那么最好使用GhostScript将文件转换为PDF语言并在该级别进行组合。
约定的重要属性是每个页面都是独立的,该文件包括构造注释,这样您就可以在输入文件中检测每个页面的开始和结束位置。另外,如果要将不同的输入文件组合成一个输出文件,则输出文件需要包含每个输入文件的所有头的所有资源。
您需要编写一页一页地迭代输入文件的代码。它需要逐页生成输出文件。对于每个输出页面,它需要跟踪到页面上的内容的边界框是什么。
对于每个输入文件,它从步骤#1中查找边框,并将其与输出页的边框进行比较。如果输出页上有输入页内容的空间,则:*生成PostScript语言代码以保存图形状态,然后将坐标系统向下转换到输出页的空白部分,*将输入页内容复制到输出文件,*生成代码以恢复图形状态。
如果没有空间,则完成当前输出页,启动一个新输出页,然后执行上述操作。
我不知道有任何现有的,容易获得的工具,做这种网页内容强制。对于一个熟悉PostScript语言和文档结构约定的程序员来说,编写这样一个工具是很简单的。这与编写一个基于PostScript语言的页面强制程序类似。
https://stackoverflow.com/questions/14032234
复制相似问题