- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发供外部应用程序使用的“GS Wrapper”(使用 9.20 SDK)。例如,我将 A0 图纸缩小到 A1、A2 和 A3,并且效果很好。 (PDF 转 PS,然后打印)
问题:当我将任何输入格式缩小到 A4 时,打印机会切掉内容的边框(这些是技术图纸,每一个黑色边框距离纸张边缘 5 毫米)。
我使用以下参数进行缩放:
GhostArg[0] = "-dNOPAUSE";
GhostArg[1] = "-dBATCH";
GhostArg[2] = "-dSAFER";
GhostArg[3] = "-dNOPAUSE";
GhostArg[4] = "-g2480x3508";
GhostArg[5] = "-dPDFFitPage";
GhostArg[6] = "-r300x300";
GhostArg[7] = "-sDEVICE=ps2write";
GhostArg[8] = Output;
GhostArg[9] = Input;
解决方案更新:
我设法通过在 Arg[8] 和 Arg[9] 之间插入这三行来解决这个问题:
GhostArg[9] = "-c";
GhostArg[10] = "<< /BeginPage { 0.99 0.99 scale 10 10 translate } >> setpagedevice";
GhostArg[11] = "-f";
感谢 KenS 提供/BeginPage 提示。
最佳答案
听起来您的打印机有不可打印区域。这并不少见,纸张处理需要在打印时握住纸张,这可能会导致介质的某些区域无法打印。
如果您的内容到达介质的边缘,可能打印机无法打印到那里,导致内容被裁剪。
完全可以让 ps2write 将媒体内容缩小到更小的尺寸,但您不能让它(自动)缩小并移动内容位置,因为内容适合媒体尺寸。
但是,FitPage 机制不查看内容,只查看媒体大小请求。因此,如果输入请求 A3 并且所选媒体为 A4(并且是固定的),则应用比例因子将内容缩放到所需的媒体大小(并且忽略 A3 的媒体请求)。
所以你可以做的是保留现有的代码,但添加一个 BeginPage 或 Install 过程,它使用缩放运算符进一步减小页面上标记的大小,并使用翻译运算符移动稍微原点,以便最终内容居中。
类似于(仅示例,未经测试):
<<
/BeginPage {
0.95 0.95 scale
16 20 translate
}
>> setpagedevice
顺便说一句,您知道 Ghostscript 是根据 AGPL 获得许可的吗?
另外,我强烈建议您不要使用 -g 和 -r 开关,而是简单地使用 -dDEVICEWIDTHPOINTS 和 -dDEVICEHEIGHTPOINTS 来改变媒体大小。
-g 开关以像素为单位工作,但高级输出设备(例如 pdfwrite 和 ps2write)不发射像素,它们写入高级 vector 对象。但是,由于 PostScript 和 PDF 图形模型的差异,某些元素确实需要呈现为图像并以这种方式包含在 PostScript 输出中。通过将分辨率设置为 300,您可以固定呈现这些元素(例如包含透明度的页面)的分辨率。我建议您不要这样做,除非您在一个非常严格控制的工作流程中工作并且知道最终输出的分辨率。
通过使用 DEVICEHEIGHTPOINTS 和 DEVICEWIDTHPOINTS 开关,您可以在不引用分辨率的情况下控制媒体大小。请注意,在 PostScript(和 PDF)中,1 磅 = 1/72 英寸。
关于c - GhostScript(后记): Printer cut- off borders when scaling down from A* to A4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41671584/
有没有办法像 super 速记样式一样在 CSS 中组合 border-top,border-right,border-left,border-bottom。 例如: border: (1px sol
这个问题在这里已经有了答案: Combining border-top,border-right,border-left,border-bottom in CSS (4 个答案) 关闭 3 年前。
所以,我是那些以始终使用最新版本的浏览器而自豪的人之一(当然 Internet Explorer 除外 - 我说的不是那个浏览器)。 我遇到了 this awesome CSS3 website详细介
border-top-color 是 #9b9c9d 而 border-bottom-color 是 #f6f9fc .渐变旨在在border-left 和border-right 上将顶部颜色过渡到
我将开始开发一个新网站,并准备处理浏览器用于计算元素宽度和高度的不同方法 (box model stuff)。不知何故,我想到了:如果我只是将 box-sizing 应用于网站中的所有元素会怎么样?
这是 fiddle :http://jsfiddle.net/3Ys2d/ CSS div{ border: solid 3px blue; border-left-color: re
这个接缝很容易,但我还没有找到任何方法来做到这一点。我有 3 个 div(但解决方案必须适用于 n 个 div),如下图所示: |分区 1 ||分区 2 ||第 3 部分 | 例如: 我想要这样的普通
由于视网膜显示器具有如此高的像素密度,因此在这些显示器上 1 像素的边框看起来非常大。正如 Brad Birdsall 所建议的,CSS box-shadow属性可用于创建“0,5 px”边框,在
我可以这样写边框的样式: border: 2px solid #DDDDDD; 或者像这样: -moz-border-bottom-colors: none; -moz-border-left-col
当在已经有 1px 边框的 div 中覆盖 border-bottom 的大小时,Firefox 和 Chrome 呈现 border-left 和 border-right 不正确: HTML C
我是CSS3新手,最近在学习border-image属性,在看W3C文档的时候: http://dev.w3.org/csswg/css-backgrounds/#border-image-width
我正在尝试在使用 border-radius 属性的 div 上使用 border 属性。 这是我的 CSS: #page { border: 1px solid #beb2b2; w
我只想在已经具有顶部和底部边框(1px 纯灰色)的 div 上添加一个左边框(5px 纯蓝色)。我希望 border-left 位于 border-top 和 border-bottom 之上,但浏览
我有一个使用 border-radius 的带有圆 Angular 的流体宽度 div,以及 div 一侧的大边框,颜色不同。 当浏览器窗口足够小时,所有边框都会正常运行。但是,当我放大窗口大小时,我
导致“错误”的 Css: div { width: 100px; height: 100px; background-color: transparent; box-s
Border-bottom长度小于border-right怎么办? img { border-bottom: 5px solid #02a8d8; border-right:1px s
我是一名优秀的程序员,十分优秀!