web列印如何修改頁首頁尾內容

2022-09-20 20:09:10 字數 1584 閱讀 4864

js在呼叫window.print列印時候,如何修改原來的頁首頁尾,以及根據業務需求定製化頁尾:

在網上能查到的資料分為兩種:

通過activexobject建構函式來修改。

通過 css 控制,即@page選擇器。

經過排查:

第一種僅在ie下可用,並且需要開啟乙個***設定,在較高的 ie 版本下測試過,直接報錯,同時考慮大環境下慢慢拋棄ie老版本,因此這種方法等於沒有。

第二種方法很多博文記載的很詳細,但是內容幾乎一樣,基本都說的是通過以下這些選擇器可以直接修改(舉例子,並不全)。

@page :first 

@top-right

}@page

}

經多次排查及測試,基本都是來自 w3c 的 copy,附上鏈結常見瀏覽器基本都不支援這些,僅有其中少數幾個選擇器可以使用,可以改改邊距(可通過減少頁邊距隱藏頁首頁尾),設定紙張方向等,無法達到我的需求(修改頁首,頁面內容)。

因此只要查到講的是這一內容的博文基本可以不用看了,浪費時間。

那麼如何實現這一業務需求呢?這裡我通過模擬css定位的方式模擬乙個頁首和頁碼,並在列印選項裡關閉頁首和頁尾

思路:將每一頁增加乙個父級盒子,並給上 定位,如:

/* 父級盒子 */

.warpper

/*頁首, 通過負數向上移 */

.head

/*頁尾*/

.foot

最終實現的效果

關於列印的一些其它注意事項,主要跟**有關,這裡簡單說下:

**的拆分問題,當**太長一頁放不下,列印時系統會將其切割,因此這裡有兩種方式: 通過 thead 標籤讓**在換頁後自動帶乙個表頭過去,即同乙個**換了 n 頁就有 n 個表頭。 如果是靜態的寫死的**,手動將**一分為多;若是根據 array 等資料結構迴圈生成的**,則先將資料結構拆分成多分,再依次生成。

**列寬預設是會在你設定寬度基礎上自行適應調整的,有乙個**屬性 table-layout: fixed 可能會用的上。

換頁問題,使用 page-break-after: always;注:在某些情況下無法分頁,使用時盡量用統一的 class 和標籤,並將兩張要分頁的內容分別用乙個盒子包裹,規範好!

對於列印時需要生成***,最好先將***轉化成,一般為 base64 格式,然後在列印前確定 onload 後再列印,注意 jquery.qrcode 是有延遲的。

python docx修改頁首頁尾

官方文件肯定是最正規的,但是有點簡單,有必要記一下,網上資料較少。開啟乙個文件後,頁首和頁尾是跟著 節 走的,也就是一節統一乙個頁首和頁尾,如果要插入新的頁首頁尾,要在word插入分節符。doc.sections這個列表就是doc所有的節。head doc.sections 0 header這就是第...

latex 重置頁首頁尾內容

pagestyle fancyhf fancyhead c 頁首居中,顯示節標題名 fancyfoot c 此命令放在導言區 fancyhead c 頁首居中,顯示節標題名 此命令放在正文,緊跟 section 命令,手動為頁首新增節標題 markboth newpage pagenumbering...

如何控制IE列印中頁首和頁尾

script language vbscript dim path,reg path存放ie列印設定的登錄檔位址,reg存放wscript.shell元件的物件 path hkey current user software micro soft internet explorer pagesetu...