我想将已存在的pdf的背景颜色更改为transparent or white
,
我正在使用pdfBox
在pdf上执行其他任务,我在这里找到了一些文档:
setBackroundColor - pdfBox
但我完全不知道如何使用它,因为我不习惯java。
有人可以提供一些示例代码吗?
答案 0 :(得分:2)
我想将已存在的pdf的背景颜色更改为透明或白色
根据PDF规范ISO 32000-1,第11.4.7节:
通常,页面应直接施加在输出介质上,例如纸张或显示屏。页组应被视为一个孤立的组,其结果应与适合介质的背景颜色合成。 背景名义上是白色的,虽然根据媒体的实际属性而有所不同。但是,一些符合标准的读者可能会选择提供不同的背景,例如棋盘格或网格,以帮助可视化艺术作品中透明度的效果。
PDF查看器通常使用此白色背景。因此,如果标准查看器上的PDF在后面显示不同的颜色,这通常是由于页面内容流中某处的某些区域填充操作。
因此,没有一个简单的PDF属性可以设置在某个地方,而是你必须解析页面内容,找到描绘你认为是背景的操作,并改变它们。但是,有许多不同的操作可用于此任务,并且这些操作也可用于除背景着色之外的其他目的。因此,没有更改背景的方法。
如果您生成的单个特定PDF或PDF格式相同,请提供示例文档,以帮助您找到更改感知背景颜色的方法。
PS:您找到的PDLayoutAttributeObject.setBackgroundColor方法是指创建所谓的布局属性
指定用于生成a所描述的外观的布局过程的参数 文档的PDF内容。 [...]
注意意图是这些参数可用于重排内容或将其导出为其他文档格式,并至少保留基本样式。
(PDF规范ISO 32000-1中的第14.8.5.4节)
因此,它们仅在用于内容重排或内容导出的PDF中提供,并且常规PDF查看器不。