2012-09-11 14 views
9

私は現在IE9とメディアのクエリを使用しており、他のブラウザからこの機能を使用する必要はありません。余白と寛容用紙サイズ(A3、A4、A5など)に合わせて、Webページに画像を印刷するにはどうすればよいですか?

を含むすべてのA形式のmillimiters(A0、A1、A2など)を一致させるために

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

// ...ルール:

は、私のようなルールのセットを使用してみました
/* 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; 
    } 
} 

// ...

それが動作しているようだが、A4フォーマットが常に選択された場合でも、CSSに渡されたサイズの高さと幅の値がプリンタに依存するように思えるので、それが信頼できるものではありません。

私が尋ねたいのは、同じ結果(用紙サイズに応じて1ページに画像を当てはめる)を得る他の方法があるかどうかです。

ありがとうございます。これはpage-breakのための仕事であるかもしれないよう

答えて

2

IEでの印刷の長さと短さは、このようなことを決して正確に制御できないことです。

物理的には、印刷可能領域であるページの量が物理的に異なっています。次に、ユーザーが印刷した最後のページ(ズーム、余白、ページあたりのページなど)に記憶されているすべての設定にも対処する必要があります。

これまで数年間苦労して、 IEが印刷ページで行うことを制御しようとし、印刷スタイルシートを提案のように扱い始めました。

IE < 9は単にページ区切りや@pageを意味のある方法でサポートしていません。私のテストでは、IE9はほとんどすべての@pageルールを無視して、ユーザーが最後に設定した設定を優先します。 IEは全幅で画像を印刷し、ページの完全な高さは、あなたはいつもこれを行うことができます答えLandscape printing from HTML

0

サウンズ:

.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を取得してページに合わせるために、高解像度の(より大きな)画像を生成することができます。

関連する問題