2013-12-18 47 views
1

我使用PrinceXML在我的.Net應用程序中創建PDF報告。我已經在HTML中創建了報告,並且只有很少的區域具有背景顏色。但是,當使用PrinceXML生成PDF報告時,這些背景顏色會丟失。我嘗試用寬度和高度替換背景圖像。他們仍然沒有展示。這就像它已經完全刪除了CSS區域。背景顏色不顯示在王子xml

任何人遇到過這樣的問題嗎? PrinceXML文檔提到它們支持背景顏色和圖像。

+0

對PrinceXML不熟悉,但作爲一個瘋狂的猜測,它使用瀏覽器的打印例程嗎?大多數瀏覽器在打印時會抑制背景顏色。 –

+0

@MrLister我認爲它獨立於瀏覽器運行(儘管它可能在內部使用類似WebKit的東西) – jinglesthula

回答

2

背景顏色

王子似乎認識到邊框顏色,但不顏色(文字顏色)或背景色背景圖像

您可以在 pseduo-element和厚邊框之後使用來模擬背景色。王子正確地呈現這個。

CSS

.bgRED:after { 
     content: ""; 
     display:block; 
     border-top: 25px solid red; 
     margin-top: -25px; 
    } 
.bgRED-ib {display: inline-block;} 

HTML

<p class='bgRED'>This is a p with a red background</p> 
<span class='bgRED bgRED-ib span6'>This is a span with a red background</span> 

這需要你知道元素的像素高度,使其工作。

背景圖片

我試圖用做背景圖像「水痕」在整個頁面

王子忽略CSS像這樣類似的事情: 背景圖像:網址( HUGE_sunset.jpg)

但是我設法得到它使用類似這樣的工作:

HTML

<img class="behind" src='HUGE_sunset.jpg'> 
<div class="infront"> 
    <p>with the lights out, it's less dangerous, here we are now entertain us </p> 
</div> 

CSS

.behind {position: absolute; width:100%; height:100%; z-index:1;} 
.infront {position: absolute; z-index:500;} 
2

在王子的文檔裏提到,background-color默認爲transparent,並且color默認爲black。一時興起,我試着將!important指令添加到我的color/background-color樣式中,並且工作正常。

我不知道Prince在這些情況下應用了什麼樣的默認樣式選擇器,但它看起來或者是在其之後(或者與一些其他更具體的選擇器)一起使用它的基本樣式,從而需要這種不愉快的戰爭。

沒有任何方式檢查應用的風格有點不透明,或者我肯定會推薦去不同的路線。幸運的是,在我的情況下,我需要的樣式僅適用於Prince生成的pdf。如果你有風格你需要使用王子和網絡,我建議張貼它作爲一個錯誤在王子論壇,並希望他們修復它。