回答
在你的CSS,你可以設置@page屬性,如下圖所示。
@media print{@page {size: landscape}}
的@page然而這size
不是由答案突出的問題Is @Page { size:landscape} obsolete?的CSS 2.1 specification部分:
CSS 2.1不再指定大小屬性。當前工作 草稿CSS3分頁媒體模塊確實指定它(但這不是 標準或接受)。
如上所述,尺寸選項來自CSS 3 Draft Specification。理論上它可以設置爲頁面大小和方向,儘管在我的示例中大小被省略了。
支持與bug report begin filed in firefox混合,大多數瀏覽器不支持它。
它看起來可以在IE7中工作,但這是因爲IE7會記住用戶在打印預覽中選擇橫向或縱向(僅重新啓動瀏覽器)。
This article確實有一些建議的解決方法,使用JavaScript或ActiveX將密鑰發送給用戶瀏覽器,儘管它們並不理想並且依賴於更改瀏覽器安全設置。
或者,您可以旋轉內容而不是頁面方向。這可以通過創建一個樣式並將其應用到包含這兩行的主體來完成,但這也會造成很多對齊和佈局問題。
<style type="text/css" media="print">
.page
{
-webkit-transform: rotate(-90deg);
-moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
</style>
我發現的最後一種選擇是在PDF中創建一個橫向版本。當用戶選擇打印時,您可以指向它打印PDF。但是,我無法得到這個在IE7中自動打印工作。
<link media="print" rel="Alternate" href="print.pdf">
總之在一些瀏覽器它使用@頁大小選項然而,在許多瀏覽器沒有確定的方式,它取決於你的內容和環境是相對容易的。 這可能是爲什麼Google文檔在選擇打印後創建PDF,然後允許用戶打開並打印該文檔。
您還可以使用非標準IE-只CSS屬性writing-mode
div.page {
writing-mode: tb-rl;
}
這會重定向頁面內容,但並不真正將頁面佈局更改爲橫向。即頁眉和頁腳仍然會被添加,就好像頁面是肖像一樣。 – 2009-07-28 03:13:48
您可能能夠使用CSS 2 @page rule它允許你設置'size' property to landscape。
嘗試添加這是你的CSS:
@page {
size: landscape;
}
使用任何瀏覽器爲您工作嗎?使用IE8和Firefox3.5,它對打印預覽沒有任何影響。 – 2009-07-28 03:15:07
不幸的是,打印預覽不會遵循所有的CSS屬性。但是這應該適用於所有當前的瀏覽器。 – gizmo 2009-07-28 05:30:14
感謝您關注此事。它似乎也不適用於我的實際打印。我錯過了什麼嗎?我的測試文件如下:(我不得不截斷該段內容以適合在評論框)
Lorem存有悲坐阿梅德,...
– 2009-07-28 23:06:07我試圖解決這個問題一次,但我所有的研究導致我朝着ActiveX控件/插件。瀏覽器(無論如何3年前)都不允許更改任何打印設置(打印份數,紙張大小)。
我努力警告用戶,他們需要在瀏覽器打印對話框出現時選擇「橫向」。我還創建了一個「打印預覽」頁面,其效果比IE6好得多!我們的應用程序在某些報告中使用了非常寬泛的數據表,並且打印預覽在表格溢出紙張右邊緣時向用戶清楚(因爲IE6無法應付兩張紙上的打印)。
是的,即使現在人們仍在使用IE6。
<style type="text/css" media="print">
.landscape {
width: 100%;
height: 100%;
margin: 0% 0% 0% 0%; filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=1);
}
</style>
如果你想要這個樣式應用於表然後創建這個樣式類一個div標籤,而這個div標籤中添加表標籤,並在年底關閉div標籤。
此表格只能在橫向打印,其他所有頁面只能以縱向模式打印。但問題是,如果表格大小超過頁面寬度,那麼我們可能會丟失一些行,有時還會錯過標題。小心。
祝您有美好的一天。
謝謝, Naveen Mettapally。
的@page規則已經 範圍從CSS2砍倒CSS2.1。據報道,僅在Opera中實現了完整的 CSS2 @page規則 (即使此時也是可用的 )。我自己的測試表明, IE和Firefox不支持@page在 全部。根據現已過時 CSS2規範第13.2.2節是 可以覆蓋用戶的 方向的設置,並在景觀 (用於 例如)力的打印,但相關的「大小」屬性已 從CSS2下降。 1,一致的 事實上沒有當前瀏覽器 支持它。它已恢復爲 CSS3分頁媒體模塊,但注意 ,這只是一個工作草案(如2009年7月的 )。
結論:忘記 約@page爲目前。如果您覺得您的文檔需要在橫向模式下打印 ,那麼問問自己 是否可以讓設計 更加流暢。如果你真的不能 (可能是因爲該文件包含了很多列 數據表,用於 爲例),您將需要告知 用戶方向設置爲 景觀,也許概述瞭如何 在做最常見的瀏覽器。的 當然,一些瀏覽器的打印 適合與寬度(收縮以配合)功能 (如Opera,火狐,IE7),但它 不宜依賴於其 這種設施,或具有用戶接通 。
-webkit-transform: rotate(-90deg); -moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
在Firefox 16.0.2沒有工作,但它是工作在Chrome
這也爲我工作:
@media print and (orientation:landscape) { … }
我的解決辦法:
<style type="text/css" media="print">
@page {
size: landscape;
}
body {
writing-mode: tb-rl;
}
</style>
這在IE
,Firefox
和Chrome
我創建了一個帶有橫向設置的空白MS文檔,然後在記事本中打開它。複製並粘貼到我的html頁面
<style type="text/css" media="print">
@page Section1
{size:11 8.5in;
margin:.5in 13.6pt 0in 13.6pt;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:4;}
div.Section1
{page:Section1;}
</style>
<div class="Section1"> put text/images/other stuff </div>
打印預覽顯示橫向大小的頁面。這似乎在IE和Chrome上運行良好,未在FF上進行測試。
size
屬性就是你所提到的。同時設置了方向和打印時,你的頁面的大小,你可以使用以下命令:
/* ISO Paper Size */
@page {
size: A4 landscape;
}
/* Size in mm */
@page {
size: 100mm 200mm landscape;
}
/* Size in inches */
@page {
size: 4in 6in landscape;
}
這裏給@page documentation的鏈接。
僅僅旋轉頁面內容是不夠的。這是一個適用於大多數瀏覽器(Chrome,Firefox,IE9 +)的正確CSS。
首先將主體margin
設置爲0,否則頁邊距將大於您在打印對話框中設置的頁邊距。還設置background
顏色以可視化頁面。
body {
margin: 0;
background: #CCCCCC;
}
margin
,border
和background
需要可視化的頁面。
padding
必須設置爲所需的打印邊距。在打印對話框中,您必須設置相同的頁邊距(本例中爲10mm)。
div.portrait, div.landscape {
margin: 10px auto;
padding: 10mm;
border: solid 1px black;
overflow: hidden;
page-break-after: always;
background: white;
}
A4頁面大小爲210mm x 297mm。您需要從大小中減去打印邊距。並設置頁面的內容大小:
div.portrait {
width: 190mm;
height: 276mm;
}
div.landscape {
width: 276mm;
height: 190mm;
}
我用276毫米代替277毫米,因爲不同的瀏覽器頁面縮放一點點不同。因此,其中一些將在兩頁上打印277毫米高的內容。第二頁將是空的。使用276毫米更安全。
我們不需要任何margin
,border
,padding
,background
打印頁上,所以其刪除:
@media print {
body {
background: none;
-ms-zoom: 1.665;
}
div.portrait, div.landscape {
margin: 0;
padding: 0;
border: none;
background: none;
}
div.landscape {
transform: rotate(270deg) translate(-276mm, 0);
transform-origin: 0 0;
}
}
注意轉型的起源是0 0
!此外,景觀頁面的內容必須移動276毫米!
此外,如果您有縱向和橫向頁面的混合IE瀏覽器將縮小頁面。我們通過將-ms-zoom
設置爲1.665來修復它。如果你將它設置爲1.6666或類似的東西,頁面內容的右邊框有時可能會被剪切。
如果您需要IE8或其他舊版瀏覽器支持,您可以使用-webkit-transform
,-moz-transform
,filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)
。但對於現代化的瀏覽器來說,這不是必需的。
- 1. 從Silverlight強制進行景觀打印?
- 2. 打印風景html-> pdf使用abcPDF
- 3. HTML到PDF導致景觀
- 4. SAS宏打印N觀測
- 5. 打印HTML塊
- 6. 打印HTML
- 7. 打印html表
- 8. 如何打印在一個景觀中的WebGrid MVC 3
- 9. 如何在IE中打印景觀多頁?
- 10. 打印大,景觀PDF使用ghostscript的9.0
- 11. 打印客戶端客戶端景觀(即只)
- 12. 從命令行使用TSP100打印機打印HTML頁面
- 13. 從HTML打印到收據打印機使用Jquery/php
- 14. Html表打印時打印行
- 15. HTML頁面打印時打印
- 16. Qt打印html到打印機
- 17. 打開html頁面打印
- 18. 從pytest打印頭打印
- 19. 打印HTML頁面
- 20. 如何打印HTML
- 21. HTML字面打印
- 22. 打印HTML文檔
- 23. TinyMCE的打印HTML
- 24. HTML 5打印API
- 25. 打印HTML與JavaScript
- 26. 打印HTML頁面
- 27. :`.html('usa')`打印它
- 28. 打印前的Html
- 29. Python - 打印到html
- 30. Groovy漂亮打印XmlSlurper從HTML輸出?
奇怪的是,它說'大小'可以是風景,當它實際上是一個'方向'。 – 2009-11-10 16:20:43
`@page size`似乎無法適用於所有現代瀏覽器,只能使用Firefox。就我所見,Chrome和Opera都無視這一點。 – Justin808 2011-05-17 22:43:14