首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在后脚本中裁剪空白

如何在后脚本中裁剪空白
EN

Stack Overflow用户
提问于 2012-12-25 16:16:22
回答 1查看 1.3K关注 0票数 5

我每个月都有数以百万计的Post文件。每个文件各有4-5页.除了第一页之外,每一页的内容都非常少。因此,虽然文件中的内容并不太大,但也存在不必要的纸张浪费。

我正在寻找一些工具,可以压缩第2页的最后或修剪未使用的空白,以便有最佳的使用纸。

我得到了PSUTILS有PSNUP命令,但它也没有完全满足我的解决方案。

任何有想法的人都可以在这个问题上提供帮助。

我的示例Post文件可以从

https://www.dropbox.com/s/2z9oirsvxzf13di/1010472622.ps

以上是一个三页后脚本文件。第二和第三页可以被俱乐部,以有最佳的纸张使用。

敬请详细指导

问候‘code.box@rediffmail.com’

EN

回答 1

Stack Overflow用户

发布于 2017-02-04 10:30:24

这是一个有趣的问题。这是一个部分的答案。

要引用对类似问题的类似回答,您必须解决两个问题:

  1. 如何确定每个页面的边框,即包含页面上所有可见标记的最小坐标。
  2. 如何将多个输入页组合到一个输出页上。

对于#1,您可以使用包围盒输出装置鬼脚本。使用如下调用:

代码语言:javascript
复制
gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=bbox 

Ghostscript打印出一个边框,例如:

代码语言:javascript
复制
%%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语言的页面强制程序类似。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14032234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档