2012-03-15 19 views
3

這是我當前的問題。將一個HTML文檔格式化爲多個A4尺寸部分

我想生成一個HTML頁面,其中包含約40券。每張優惠券必須帶有一個A4尺寸的部分。

所以,如果我是打印的HTML文件,我想每個打印頁包含1張優惠券。

理念上,我怎麼能做到這一點?

+1

你有沒有嘗試使用帶班* A4 *的div CSS'div.a4 {寬度:210;高度:297毫米; }'? – 2012-03-15 11:18:08

+0

大小有助於我的問題。 – 2012-03-15 12:14:07

回答

4

下面的CSS應該達到你所需要的,subistitute類名無論什麼是適合您的DOM結構

@media print { 
    .coupon-class 
    { 
    page-break-after:always; 
    } 
} 

這將始終插入分頁符的元素之後,你還可以使用page-break-before實現元素之前的分頁符。

+0

這正是我需要解決的問題。 – 2012-03-15 12:14:22

2

你永遠不會使用HTML得到非常精確的解決方案,因爲每一個瀏覽器決定了印刷HTML的方式是最好的,並增加了各種標題和更改頁面尺寸和如何客戶端打印機實際打印它頁腳。

你會好起來產生的優惠券,你可以輕鬆地與PHP擴展做的PDF。

+0

+1 PDF是去這裏的路。 – 2012-03-15 11:22:52

+1

+1當打印出現瘋狂不一致時呈現HTML。 – 2012-03-15 11:24:53

+0

這是不正確的,CSS2 +已經包含了很好支持的page-break-before/after屬性,再加上一個打印媒體查詢,你實際上可以實現相當可靠的打印樣式,唯一不可取的是用戶打印邊距,但如果你只需要一個分頁符,那麼它很容易通過CSS實現。 – 2012-03-15 11:26:48

0

你可以做的步驟如下:

  1. 定義width:100每個優惠券的CSS樣式。這將使用您的紙張的最大寬度。
  2. 在每個優惠券的CSS屬性中使用page-break-after:always。這將強制下一張優惠券顯示在下一頁。 (http://msdn.microsoft.com/en-us/library/ms530842(v=vs.85).aspx)

不要忘記小心你的優惠券的高度。儘量避免在其中放置很多行。
您可以對每張優惠券使用<fieldset>標籤並在其上應用css屬性。

+0

你是不是指'寬度:100%;'? – AlicanC 2013-10-17 14:20:51