setBackgroundColor pdfBox Java

时间:2014-01-06 06:27:13

标签: java pdfbox

我想将已存在的pdf的背景颜色更改为transparent or white, 我正在使用pdfBox在pdf上执行其他任务,我在这里找到了一些文档: setBackroundColor - pdfBox 但我完全不知道如何使用它,因为我不习惯java。

有人可以提供一些示例代码吗?

1 个答案:

答案 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查看器