2014-01-06 39 views
1

我想一個已經存在的PDF的背景顏色更改爲transparent or white, 和我使用pdfBox有關PDF執行其他任務,我發現這裏的一些文件: setBackroundColor - pdfBox 但我完全不知道的如何使用它,因爲我不習慣java。setBackgroundColor PDFBOX的Java

有人可以提供一些示例代碼做這件事嗎?

回答

2

欲一個已經存在PDF的背景顏色改變爲透明或白色

據PDF規範ISO 32000-1,部分11.4.7:

通常,頁面應直接施加在輸出介質上,如紙張或顯示屏。頁面組應視爲一個孤立的組,其結果應與適合媒體的背景色合成。 雖然根據介質的實際屬性而變化,但名義上白色的背景爲。但是,一些符合要求的讀者可以選擇提供不同的背景,例如棋盤格或網格,以幫助可視化藝術品中透明度的效果。

PDF閱讀器經常使用這個白色背景。因此,如果您在標準查看器上的PDF在後面顯示不同的顏色,通常是由於頁面內容流中的某個區域填充操作。

因此,沒有簡單的PDF屬性設置某處,而是必須解析頁面內容,查找將您認爲是背景的操作,並將其更改。雖然有許多不同的操作可用於此任務,但這些操作也可用於除背景着色之外的其他目的。因此,沒有改變背景的方法。

如果您生成了一個特定的PDF或PDF文件,請提供一個示例文檔,以幫助您找到找到一種方法來更改感知的背景顏色。

PS:您發現該PDLayoutAttributeObject.setBackgroundColor方法是指創建所謂佈局的屬性

指定用於生產由 文檔的PDF內容描述的外觀佈局過程的參數。 [...]

注意:這些參數可用於重排內容或將其導出到其他文檔格式,並至少保留基本樣式。

(14.8.5節)4在PDF說明書ISO 32000-1

因此,它們在用於內容迴流內容出口的PDF僅提供並且可通過常規的PDF觀衆使用

+0

好吧,我明白沒有直接的方法來獲得透明度。看起來我不得不考慮其他方法,我會在一段時間後接受答案。 – codin

+0

你能解釋一下[setBackgroundColor()](http://pdfbox.apache.org/docs/1.8.3/javadocs/org/apache/pdfbox/pdmodel/documentinterchange/taggedpdf/PDLayoutAttributeObject.html#setBackgroundColor%28org.apache .pdfbox.pdmodel.graphics.color.PDGamma%29)在pdfBox嗎? – codin

+0

發佈了一個新問題,您能評論嗎? [文字操作員的顏色是黑色](http://stackoverflow.com/questions/20947596/get-all-text-operators-whose-color-is-black-pdfbox)。對不起,如果我發出noob,因爲我! – codin