2011-06-13 10 views
6

Googleで見つけたものから、Javascriptを使用して印刷設定(余白、向き、フッターなど)を設定する方法が見つかりません。JSから印刷設定を設定する

私は自分の上司に、彼がやりたいことはできないと伝えようとしています。私はあなたがこれを行うには良い人物の先輩を確認したいと思った。私にお知らせください。

FFでは、user_pref(key、val)設定を使用してユーザーの設定を設定できますが、これはユーザーの90%以上では機能しません。私はIEの(可能な限り)、FFとクロムをカバーする何かを探しています。

忍者に返信してくれてありがとう。

+1

私はWebの忍者ではなく、JSソリューションでもありませんが、CSSの印刷スタイルシートは他のものの中で何を達成するはずですか?ティモさんへの追加 –

+1

、基本的には、別のスタイルシートを作成し、自分は完全にあなたの印刷されたバージョンの外観を変更できるようにするCSS http://www.javascriptkit.com/dhtmltutors/cssmedia.shtmlのための印刷メディアクエリの例については、これをチェックページ。たとえば、体の背景色を#fffに設定して、印刷されたコピーを使用してインクを少なくし、よく見えるようにしなければなりませんでした。 – mrk

+0

実際には、このアドオンhttp://jsprintsetup.mozdev.org/を使用してJavaScript経由で印刷プロパティを設定することができます。 –

答えて

11

だから私は自分の質問に対する答えを見つけたと思う。要するに、JSおよび/またはCSSでは、クライアントのブラウザのデフォルトのページ設定を上書きすることはできません。

これは私が試みたものです。空のheadと、テキスト "Test"のみを含む本文を含む単純なHTMLファイルを作成すると、テストしたものを見ることができます。

  1. プリントスタイルシートは問題を解決できません。本文のマージンを0px 0px 0px 0pxに設定することは、[ファイル]> [ページ設定]をクリックしてすべての余白を0に設定するのと同じことではありません。自分で試してみてください。このため、印刷スタイルシートは問題を解決しません。

  2. JSでは問題を解決できません。訪問したすべてのページがあなたのローカルJSプロパティを変更したかどうかをイメージできますか?各ページがローカルの印刷設定にアクセスできるようにすることは、セキュリティ侵害であり、許可されていません。このため、JSでは問題を解決できません。

私は誰かがここに応答して私に間違っていることを知らせたいと思う。そうでなければ...これは吸う...それは起こる必要があります。私は古いユーザーが大勢います...ページ設定で余白を設定するのは苦痛です。また、顧客は、ページをリファクタリングする必要がないようにページをリファクタリングする必要もありません。私はロックとハードスポットの中間にいる。

6

あなたはCSSでページの向きや余白を設定することができます。

@page { 
    size: landscape; 
    margin: 10% 
} 

ます。また<tfoot>要素を使用して、各ページの下部にフッターを設定することができます。

EDIT:Beejaminが指摘しているように、これは半分の家です。プリンタの設定(印刷をクリックすると、印刷ダイアログに表示されるもの)を実際に変更することはできません。また、IEは、@pageセレクタ(IE9がそれをサポートしていて何も見つけられなかったかどうかを見て回っていた)のサポートがひどく欠けています。代わりに、あなたはいつでもあなたのプリントスタイルシートの本文にそれを適用することができます。

body { 
    size: landscape; 
    margin: 10% 
} 

私の頭の中には、これがどれほど効果的かは分かりませんが。

+1

Jaitsu、@pageは何をしていますか?私は@pageに関するcssのドキュメントを見つけることができません。私がそれに適用しようとするすべてのスタイルは動作しません。 – frosty

+1

@pageはページングされたメディアのためのページ要素です(それはプリンタのみです、AFAIK)。それは素晴らしいことではありません。私が知っているIEではうまくいきません。このような目的のために設計されていますが、プリンタの設定を調整することはできません。プリンタに送信されるページボックスの余白/パディング(プリンタの余白が追加されます) )。 – Beejamin

+1

おっと - リンクを含めることを意味します:http://www.w3.org/TR/CSS2/page.html Googleは「@」記号を取り除くので、検索するのは難しいです。 – Beejamin

3

私は、あなたがHTMLとCSSでこれをやろうとしているのは大変だと思います。問題の大きな部分は、プリンタのマージンはすべてプリンタの種類に固有であるということです。ほとんどのプリンタは、設定できる余白が最小です(ページを把持するスペースとヘッドの左右の動きに相当します)。

許容マージンはまた、(マージンは、典型的には、プリンタが受け入れる最大値よりも小さいシートに小さくすることができる)、用紙サイズに基づいて変化します。たとえば、A5用紙をA4プリンタにセットすると、設定できる余白はA4をセットした場合と異なります。その情報の

なしCSS、JavaScriptの、または何かを経由して、Webページに使用できません。

解決策として、PDFファイルを使用すると、プリンタのデフォルト設定をファイルに埋め込むことができます。Acrobat Proでは、拡大縮小オプション、デフォルトのコピー枚数などを指定できますAcrobatが公開しないファイル形式で利用可能な設定がもっとあると賭けている。

は、使用する方のサーバー側の技術のためのフル機能を備えたPDF生成ツールがたくさんあります。良いものはあなたにURLを提供し、HTML + CSSをPDFコンテンツにレンダリングすることさえ許可します - それはある程度世代を自動化します。しかし、PDF生成はかなりCPU集中的であり、ユーザにとってもシームレスではありません(また、ほとんどのブラウザではPDFプラグインが必要です)。

私はそれが理想的ではないと知っているが、それは私がに見たい道です。がんばろう! CSSを使用した

1

は、あなたがそれを達成するのに役立ちます。

@page { 
    margin:0cm; 
} 
関連する問題