2009-06-04 18 views
4

印刷するときにHTMLコンテンツを表示する必要があります。基本的には、ブラウザの印刷プレビュー機能をエミュレートする必要があります。HTML文書の印刷プレビューを表示する方法

私はHTML/CSS/JavaScriptだけでこれを行う方法がわかりません。私が思いついた唯一の解決策は、HTMLをPDFに変換してページに分割し、そのPDFを画像に変換し、それぞれの画像を別の画像に印刷することです。

誰かがより直接的な方法を指すことができるのであれば、本当に役に立ちます。これが可能かどうかはわかりません。

私はバックエンドでPHPを使用しています。このためにPHPクラスがあれば役立ちます。私はこれが可能だとは思わない alt text

+3

ブラウザの印刷プレビュー機能を使用する代わりに、印刷プレビューを実際のWebページコンテンツとして表示したいのですか? –

+0

正確には、それは正しい – Flupkear

答えて

3

を:それをdiplayingため

ページサイズに関係なく、ユーザはそれがブラウザでどのように見えるべきか

これを設定しているものを文字になることはありません。すべてのユーザーの印刷設定をブラウザー(javascript)で知ることはできませんし、サーバー(php、asp、java)ではないことは間違いありません。

更新

(まともな100%ベタ印刷プレビューが不可能であることを心に留めておいてください)それについてこのように考える:

  • ユーザーがページに移動し、印刷プレビューを要求
  • サイト(さもなければPNGまたはPDF、好ましくはHTML形式で)印刷プレビューを提供
  • ユーザーが好きで、印刷したい:
    1. ブラウザ
    2. からいくつかの画像閲覧/編集プログラムのAcrobatから(PNG)
    3. (PDF)
  • からのすべての印刷ソリューションは、それが自分の印刷...ダイアログのしています。ここで印刷設定を変更することができます。

それは...

+0

ありがとう、私は、ページサイズはユーザーが設定しているかどうかにかかわらず文字であることを忘れていた – Flupkear

+1

ページサイズは1つの問題です。プリンタのメイク/モデルによって、画像の印刷可能領域が決定され、ソフトページ区切りおよびマージンに影響します。実際には、プリンタとプリントドライバの詳細を知らなくても、どのように見えるかを確実に予測する方法はありません。 – JohnFx

+1

実際、私はユーザーの印刷設定を言っていました。クライアント印刷の設定(JohnFxのすべての記事)です。 – Ropstah

1

HTMLは本当にのために意味されていなかった...あなたは(あなたのウェブサイトから)その時点でもう出力を制御することはできませんあなたが望むすべてが失敗した最後のポイントですそれはスクリーン上で読むことを意図していた。ブラウザページのプレビューが十分でないのはなぜですか?

とにかく、あなたができることは、htmlをラテックスなどに変換して、それをサーバー側のpdfまたはpngにレンダリングして表示することです。しかし、それは非常に複雑なhtmlレイアウトを使用することを排除します。そうでなければ、かなり厄介なものになります。

+0

ありがとう、これは私が付属しているのと同じソリューションです – Flupkear

+1

これは、変換されたPDFまたは印刷するpngを取得しない限り、これはユーザーに公平な印刷プレビューを与えません。それでも、それはプリンタにどのように見えるかによって異なります(余白のないプリンタを表示しますが、プリンタは余白なしに印刷できません...印刷可能なサイズに圧縮するか、複数のページにいくつかの部分を印刷しますか? – Ropstah

+0

このアイデアは、印刷時にHTMLにいくつのページが含まれるかをユーザーに表示するものです。実際に印刷したいときは元のHTMLが使用され、余白とすべてがプリンタによって設定されます – Flupkear

3

他の人が指摘しているように、これを行うことはできません。私のお勧めは、単純な白い背景と平らな黒いテキストだけを含む「プリンタに優しい」バージョンを作成することです。しかし、これは実際の「印刷プレビュー」に近づくほどです。

0

私は単純な回避策があると思います。

ページサイズと上下左右の余白をユーザーに尋ねることができます。次に、これらの設定を使用してページをPDFでレンダリングします。 PDFは生成されたページが印刷されることを保証します。

私はこのアプローチがうまくいくと思います。

関連する問題