好的,我花了一天左右的時間來解決這個問題,所以我想發佈我的解決方案,以防萬一需要的答案。
一般來說這裏是我做的。
- 生成的輸出爲正常(不打印機意)
- 創作2個的樣式表(一個用於打印機,和一個用於屏幕)。所有頁面元素的測量結果均以英寸(而不是像素)爲單位轉換爲打印輸出。
- 使用jQuery,我做了以下內容:
- >所謂的功能追加初始頁面的DOM - 這樣的事情
// assumes old_page_id is existing element in DOM, and var page_id = 1;
$j("<div class='page' id='" + page_id + "'><div class='print_area'></div></div>")
.insertAfter('#' + old_page_id);
- 的div>測量高度是頁面(在我的情況下,$(「頁面」)的高度();)
- >跑了一個函數來做到的div和新頁面插入 - 這樣的事情
$('div_class').each(
function() {
// measure height of $(this)
// add it to running total of used space on existing page
// if sum total exceeds remaining space, create new page, and add to that one
// if still room left, add to this one
}
);
注意,每個頁面的div(在我的案件中,class =「頁面」)在打印機樣式表有這樣的:
分頁 - 後:始終;
這是我得到了它,我想在打印機上創造了新的一頁。
運行上面jQuery的功能後,我躲在包含我想移動到打印頁面的div元素的原始部分。注意:我無法掩飾手之前本節,因爲我的jQuery的測量將不會產生有效的結果(在我的情況,我把所有的div一個div包裝內側的「hide_me」 ID和樣式設置爲高度:1px的;溢出:自動;)。
我意識到這是非常50000英尺看法,但希望它是對您有所幫助。
此問題已被多次提出並以各種形式回答。這裏有一個例子:http://stackoverflow.com/questions/4760899/page-break-beforeauto-not-working-for-me-why/ – mVChr 2011-02-02 18:15:34
是的 - 檢查了一個出來,雖然沒有真正回答我的問題,但它是一個步驟。謝謝。 – OneNerd 2011-02-02 18:27:41