1. ホーム
  2. ハイパーリンク

[解決済み】HTMLからの横書き印刷

2022-03-31 19:51:59

質問

HTMLのレポートがあるのですが、列が多いので横向きに印刷する必要があります。ユーザーがドキュメントの設定を変更することなく、これを行う方法はあるのでしょうか?

また、ブラウザの種類にはどのようなものがありますか。

解決方法は?

CSSの中で、以下のように@pageプロパティを設定することができます。

@media print{@page {size: landscape}}

の一部であり、@pageは CSS 2.1仕様 しかし、この size は、質問に対する回答で強調されているように Page { size:landscape} は廃止されましたか? :

CSS 2.1ではsize属性の指定がなくなりました。現在のワーキング CSS3 Paged Mediaモジュールのドラフトでは指定されています(ただし、これは 標準または受理されます)。

前述の通り、サイズオプションは CSS 3 ドラフト仕様 . 理論的には、ページサイズと方向の両方を設定することができますが、私のサンプルではサイズは省略されています。

と非常に混在したサポートになっています。 Firefoxでバグレポート開始 ほとんどのブラウザでサポートされていません。

IE7で動作しているように見えるかもしれませんが、これはIE7が印刷プレビューでユーザーが最後に選択した横向きか縦向きかを記憶しているからです(ブラウザを再起動した時のみ)。

この記事 JavaScriptやActiveXを使用して、ユーザーのブラウザにキーを送信する方法がいくつか提案されていますが、理想的な方法ではなく、ブラウザのセキュリティ設定の変更に依存しています。

また、ページの向きではなく、コンテンツを回転させることもできます。これは、スタイルを作成し、この2行を含む本文に適用することで可能ですが、これには多くの整列とレイアウトの問題を引き起こすという欠点があります。

<style type="text/css" media="print">
    .page
    {
     -webkit-transform: rotate(-90deg); 
     -moz-transform:rotate(-90deg);
     filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
    }
</style>

私が見つけた最後の代替案は、PDFで横長バージョンを作成することです。ユーザーが印刷を選択すると、そのPDFが印刷されるように指定することができます。しかし、私はIE7でこれを自動印刷の仕事を得ることができませんでした。

<link media="print" rel="Alternate" href="print.pdf">

結論として、一部のブラウザでは、@ページサイズオプションを使えば比較的簡単ですが、多くのブラウザでは確実な方法はなく、コンテンツや環境に依存します。 このため、Googleドキュメントでは、印刷を選択するとPDFが作成され、それを開いて印刷することができるようになっているのかもしれません。