css 打印print

css打印的基本設(shè)置

打印頁面的一些屬性,包括紙張尺寸咐吼,方向吹缔,頁邊距,分頁锯茄,頁眉厢塘,頁腳,水印等等特性撇吞,大多數(shù)可以通過@page的規(guī)則來設(shè)置俗冻。

度量單位

顯示時一般使用px,em或pt等邏輯單位,但在打印時要使用物理單位,比如cm或in(英寸)。對于常見的DPI(Dot Per Inch)為96的screen,px與cm的換算關(guān)系如下:

1 inch = 2.54 cm
1cm = 96/2.54 ≈ 37.80 px
1px = 2.54/96 ≈ 0.0265 cm
100px = 2.65 cm

A4紙的標(biāo)準(zhǔn)尺寸為:
21.0cm * 29.7 cm

在96DPI分辨率下,其對應(yīng)的像素尺寸大約為:
794px * 1123px

因為不同的DPI下,其對應(yīng)的像素尺寸是不同的,所以才要使用print css,使用物理單位來描述要打印的頁面,這樣打印效果就會一致了牍颈。

css代碼:

  • A4紙尺寸:
@media print {
  @page {
     /*A4: 210mm × 297mm,size: 794px × 1123px琅关,0邊距*/
    /*171.9mm × 258.9mm煮岁,size:649px × 978px,19.05mm邊距(ie瀏覽器默認(rèn)打印邊距) */
       size: 210mm 297mm; 
    }
}
  • 方向:“portrait” 或 “l(fā)andscape”涣易。

@page { size: A4 landscape; }

  • 頁邊距:

@page{margin: 2em;}

  • 打印分頁:
@media print {
  /*強制分頁*/
  .print-page {
    page-break-after: always;
  }
}
  • 避免表格斷開:(注:2019年11月20日補充)
@page{
    table{
        page-break-after: avoid;
    }  
}
  • 避免某行文字?jǐn)嗔眩?em>(注:2019年11月20日補充)
@page{
   table{
       page-break-inside: avoid;
   }  
}
  • orphans 設(shè)置當(dāng)元素內(nèi)部發(fā)生分頁時必須在頁面底部保留的最少行數(shù)画机。
  • widows 設(shè)置當(dāng)元素內(nèi)部發(fā)生分頁時必須在頁面頂部保留的最少行數(shù)。
    比如:
@media print {
  p {
    widows: 2;/*頂部2行*/
    orphans: 3; /*底部3行*/
  }
}

至于頁眉頁腳的設(shè)置新症,css的方式可以參考此文打印樣式設(shè)計步氏,只是需要調(diào)用三方的Prince。js的方式徒爹,目前就發(fā)現(xiàn)Webbrowser控件方式(ie10以下才行)荚醒,可參考此文JS實現(xiàn)瀏覽器打印、打印預(yù)覽

至于從服務(wù)器端著手的方式可自行去搜索相關(guān)資料隆嗅。

其他

  1. 對于頁面上有顯示而不想打印的內(nèi)容,可以將其display設(shè)置為none來避免打印界阁。
  2. 需要打印的內(nèi)容盡量避免float,有些瀏覽器不會正確的打印浮動的內(nèi)容。
    可以調(diào)用window.print()函數(shù)來打印當(dāng)前頁面胖喳。
  3. 分頁打印或換頁打优萸:page- break-before和page-break-after CSS屬性并不會修改網(wǎng)頁在屏幕上的顯示,這兩個屬性是用來控制文件的打印方式。每個打印屬性都可以設(shè)定4種設(shè)定值:auto较剃、always咕别、left和 right。
    相關(guān)參數(shù)說明可以參考https://developer.mozilla.org/zh-CN/docs/Web/CSS/page-break-afterhttps://developer.mozilla.org/zh-CN/docs/Web/CSS/page-break-beforeCSS print 樣式

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惰拱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子确垫,更是在濱河造成了極大的恐慌弓颈,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件删掀,死亡現(xiàn)場離奇詭異翔冀,居然都是意外死亡,警方通過查閱死者的電腦和手機披泪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門纤子,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人款票,你說我怎么就攤上這事控硼。” “怎么了艾少?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵卡乾,是天一觀的道長。 經(jīng)常有香客問我缚够,道長幔妨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任谍椅,我火速辦了婚禮误堡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雏吭。我一直安慰自己锁施,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布杖们。 她就那樣靜靜地躺著悉抵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胀莹。 梳的紋絲不亂的頭發(fā)上基跑,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機與錄音描焰,去河邊找鬼媳否。 笑死栅螟,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的篱竭。 我是一名探鬼主播力图,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掺逼!你這毒婦竟也來了吃媒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吕喘,失蹤者是張志新(化名)和其女友劉穎赘那,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氯质,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡募舟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了闻察。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拱礁。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辕漂,靈堂內(nèi)的尸體忽然破棺而出呢灶,到底是詐尸還是另有隱情,我是刑警寧澤钉嘹,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布鸯乃,位于F島的核電站,受9級特大地震影響跋涣,放射性物質(zhì)發(fā)生泄漏飒责。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一仆潮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧遣臼,春花似錦性置、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屏歹,卻和暖如春隐砸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝙眶。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工季希, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留褪那,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓式塌,卻偏偏與公主長得像博敬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子峰尝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案偏窝? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,758評論 1 92
  • CSS print 樣式 標(biāo)簽(空格分隔): CSS 顯示器(screen)和打印機(printer)是兩種差別很...
    lumicinta閱讀 2,154評論 0 0
  • 引入樣式: @media print{} 單位****(cm,in****英寸****)1 inch = 2.54...
    神刀閱讀 2,058評論 0 0
  • 原文鏈接:https://lon.im/post/css-print.html 簡介 本文主要講解如何使用 CSS...
    龍好閱讀 3,269評論 0 11
  • 引入樣式: @media print{} 單位(cm,in英寸)1 inch = 2.54 cm1cm = 96/...
    神刀閱讀 7,582評論 1 2