我正在尝试生成一个要在预先打印的工作表中打印的xsl,它工作得很好。
现在,我想给用户一个更好的预览效果(在pdf屏幕版本中),添加一个背景图像,模拟工作表上的“预打印”填充,给用户一个打印内容的“上下文”。
问题是:有没有办法在xsl (使用apache fop)中设置一个只在pdf中可见而在打印版本中不可见的背景图像?
感谢你们所有人的阅读或给我们任何建议。
发布于 2015-05-14 02:24:42
尽管正如评论所说,PDF中的内容不能以物理打印副本的形式出现,但这里有一个可能的解决方法。根据你的用户最终将如何使用FOP进行PDF渲染,以及你如何驱动工作流程,在转换阶段运行之前,可以将一个参数传递到xslt文件中,因此,你可以对同一个PDF进行双重渲染,一个是在启用背景图像的地方呈现给用户的,另一个是打印出来的,你可以只设置一个类似于他们在this Example中做的变量,并将其命名为$isPreview,只需使用一个简单的if或choose语句来检查'Y‘或'N’。
由于您要发送到打印机,您甚至可能想利用FOP生成Postscript而不是PDF的能力,我已经在使用FOP打印文档时广泛使用了此功能,同时还通过电子邮件或托管服务生成PDF副本,我还没有发现PDF呈现和发送呈现的postscript文件后打印的内容之间有任何差异,所以它也适用于您。
正如我所说的,这并不是你提出的问题的真正解决方案,但作为一种变通办法,如果你对如何实现它很聪明,它可以得到你想要的结果。
发布于 2015-05-19 01:37:12
我不认为这是不可能的说法是真的,我只是不确定如何用FOP创建这样的PDF。当然,您可以添加一个图像字段。可以使用按钮字段并将图像放在按钮中。然后将该按钮的属性设置为not print (printable false)。
支持字段中的图片:https://answers.acrobatusers.com/adding-image-field-form-q41825.aspx
RenderX支持PDF表单域,但我看不出它们在按钮内的什么地方支持图像,只支持文本:http://www.renderx.com/reference.html#PDF%20Forms。但它们确实支持将字段设置为“可打印”。
https://stackoverflow.com/questions/30168778
复制相似问题