4

これらのブラウザー (Windows バージョン) は、img タグ画像の上にキャンバス オーバーレイがある Web ページを正しく印刷します。

IE6、IE7、IE8、ファイアフォックス、サファリ

しかし、Chrome (バージョン 3.0.195.27 でこれを入力した時点で最新) とOpera (このバージョン 10.0 ビルド 1750 を入力した時点で最新) はそうではありません。Chrome はキャンバスのレンダリングを完全に無視します。Opera はキャンバス全体を白い長方形としてレンダリングし、その背後にある画像を覆い隠します。

canvas タグはかなり新しいものであり、Web ページの印刷は常に危険であることを私は知っています。これをどのように処理すればよいですか?これを機能させるために欠けている設定はありますか? 少なくともユーザーに警告するために JavaScript からキャッチできる「印刷しようとしている」イベントはありますか?


更新: 見た目よりもさらに奇妙です。結合された画像 (img をオーバーレイするキャンバス) は、Brother レーザージェットでは正しく印刷されますが、HP インクジェットでは正しく印刷されません)。

したがって、現在の状況では、ほとんどのブラウザーは私のインクジェットに正しく印刷されますが、Chrome はそうではありません。Operaは両方のプリンターで失敗します。

これはすべてプリンタ ドライバと、さまざまなブラウザがプリンタ ドライバとどのように通信するかによるものですか?


更新: Google Docs が印刷用の PDF を作成していることに気付きました。

4

3 に答える 3

2

PHP の PDF 関数を使用して、プログラムで PDF を作成できます。それは本当に簡単です!

新しい PDF を作成するには:

$pdf = pdf_new();

ファイルを開きます。

pdf_open_file($pdf, "pdfName.pdf");

作成者など、いくつかの変数を設定できます。

pdf_set_info($pdf, "Title", "pdf Title here");

pdf_begin_page()次に、関数 を使用する必要があります。

pdf_begin_page($pdf, 595, 842);

これらはA4の寸法です。

コンテンツ

そして、次のコマンドでファイルを閉じます:

pdf_end_page($pdf);
pdf_close($pdf);

完全なリファレンスについては、PHP の PDF マニュアルをご覧ください。

于 2009-11-17T14:33:08.460 に答える
1

要素にレンダリングする代わりに、ドキュメント外のキャンバス オブジェクトにレンダリングし、 に CSS スタイルを設定して を に設定<canvas>すると、正しく印刷されるのではないかと思います。<div>background-image"url("+myCanvasObject.toDataUrl()+")"

srcまた、新しい<img />要素の属性を同じに設定することもできますmyCanvasObject.toDataUrl()。これは、上記の方法よりも適切に処理する必要があります..

于 2009-11-16T20:18:06.283 に答える
0

ページを PDF として保存し、印刷してみることをお勧めします。印刷する PDF ドキュメントは WYSIWYG である必要があります。PDF が正しく表示されれば、どのプリンタでも問題なく印刷できます。

于 2009-11-16T18:15:47.327 に答える