2012-09-11 316 views
9

我目前使用IE9和媒體查詢,我沒有必要從其他瀏覽器的工作。如何在網頁上打印圖像,適合紙張尺寸(A3,A4,A5等)?

我試圖用一組類似的規則:

@page { 
    size: auto; 
    margin: 10mm 10mm 10mm 10mm; 
} 

// ...規則相匹配的所有A格式,包括利潤和寬容

的millimiters(A0,A1,A2,等等)
/* A4 210x297 mm */ 
@media print and (min-height: 266mm) and (max-height: 288mm) and 
    (min-width: 179mm) and (max-width: 201mm) { 
    .img_port { 
     height: 267mm !important; 
    } 
} 

// ...

這似乎是工作,但由於傳遞給CSS大小的高度和寬度值似乎取決於打印機即使A4幅面總是選擇是不可靠。

我想問的是,如果有任何其他可能的方式來獲得相同的結果(根據紙張大小在一頁上安裝圖像)。

預先感謝您。

回答

2

在IE中打印的長短,你將永遠無法準確地控制這樣的事情。

物理上,打印機在打印區域的多少部分具有不同的功能。然後,您還必須處理IE從用戶打印的最後一頁中記錄的任何設置,例如縮放,頁邊距,頁面每頁等。

經過多年的努力,我終於放棄試圖控制IE對打印頁面的處理,並開始更像處理我的打印樣式表。

IE < 9根本不支持任何有意義的分頁符或@page,並且在我測試中,IE9只是忽略了幾乎所有的@page規則而偏愛用戶上次配置的任何設置。

如果認爲IE在全寬和頁面的全高打印圖像嘗試回答Landscape printing from HTML

0

聽起來這可能是page-break工作:

.img_port { 
    height: 267mm !important; /* might also try height: 100%; */ 
    page-break-after: always; 
    page-break-before: always; 
    page-break-inside: avoid; 
} 
+0

我無法使用固定高度,因爲我不知道紙張的大小。 – ChaSIem

-1

如果使用分頁符,它會顯示一個空白頁。

img{ 
    page-break-inside: avoid; 
    padding:0; margin:0; 
    top:0; left:0; right:0;bottom:0; border:0; 
    /*width:2480px; height:3508px!important;*/ /*a4 size */ 
    width:100%; height:100%; max-width:100% important! 
} 
.page-break { display: block; page-break-before: always; } 
@page { 
size: landscape; 
} 
@page :first { 
    margin-top: 10cm /* Top margin on first page 10cm */ 
} 
+0

這不適合我。身高100%無法正常工作。僅當圖像可以包含在具有相同方向的頁面中時,寬度100%纔有效(例如,橫向比率爲1,41的橫向圖像爲橫向A4)。將這個CSS與肖像圖像一起使用,打印在橫向頁面上並不適合高度,但寬度和圖片會被裁剪。 – ChaSIem

1

你總是可以做到這一點:

創建僅保留CSS你一個新的CSS文件要在打印時應用。

*{display: hidden;} 
img{display: block; width: 100%; height: 100%;} 

然後你就可以鏈接到它在你的HTML文檔:

<link rel="stylesheet" href="link/to/print.css" media="print" type="text/css" /> 

我不是100%「顯示:塊;」,你可能需要嘗試玩弄其他「塊」的值。我沒有測試過,但如果你這樣做,讓我知道它是否工作!

+0

我知道使用(media =「print」)可以讓你分開打印的CSS,並且你可以從那裏玩弄它。 –

0

沒有任何可靠這樣做AFAIK。
我們讓用戶選擇頁面大小/方向並生成包含圖像的正確大小的PDF。實際上,您可以生成高分辨率(更大)的圖片以更好地打印DPI並將其放入頁面。

相關問題