質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Q&A

解決済

2回答

25255閲覧

スクロールの発生するWeb画面を全て印刷したい

s.kun

総合スコア11

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

0グッド

0クリップ

投稿2018/08/08 06:36

やりたい事

Web画面の印刷

環境

OS:Windows 10 Pro
ブラウザ:Chrome バージョン: 67.0.3396.99(Official Build) (64 ビット)
Angular: 6.0.3
ngx-onsenui: ^4.2.0
onsenui: ^2.10.0

問題

スクロールが発生するWeb画面を印刷しようとすると、1Pageしか印刷できない。(2Page以降にも印刷する画面があるが切れている。印刷するとスクロールバーも印刷される)

やった事

html内の<ons-page>タグを削除すると、全Page印刷することができた。ただし、画面のスクロールバーも消えた。

期待する事

htmlを変更せずに全Pageを印刷するにはどうしたらよいでしょうか?

印刷したい画面のHTML

html

1<ons-page> 2 3 <ons-toolbar> 4 <div class="center">ストップウォッチ</div> 5 </ons-toolbar> 6 7 <br> 8 9 <div class="container-fluid"> 10 11 <div class="row"> 12 <div class="col-md-12"> 13 <div class="table-responsive"> 14 <table class="table table-striped"> 15 <thead> 16 <tr> 17 <th>ユーザー</th> 18 <th>開始</th> 19 <th>終了</th> 20 <th>H</th> 21 </tr> 22 </thead> 23 <tbody> 24 <tr *ngFor="let work of works"> 25 <td>{{work?.userId}}</td> 26 <td>{{work?.startedAt | date: 'yyyy/MM/dd HH:mm'}}</td> 27 <td *ngIf="!work?.isCompleted">{{nowDate | date: 'yyyy/MM/dd HH:mm:ss'}}</td> 28 <td *ngIf="work?.isCompleted">{{work?.finishedAt | date: 'yyyy/MM/dd HH:mm'}}</td> 29 <td class="column5" *ngIf="!work?.isCompleted"></td> 30 <td class="column5" *ngIf="work?.isCompleted">{{work?.time}}</td> 31 </tr> 32 </tbody> 33 </table> 34 </div> 35 </div> 36 </div> 37 38 </div> 39 40</ons-page>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

mediaqueryを利用して印刷用のcssを定義するのが一般的だと思います。
Component自体の表示の切り替えがcssではなくjavascriptで行われている場合、
別途印刷用のページを作成して、そのページを印刷してもらうしか無いかもしれません。
また、何かしらのタグまたはComponentにoverflow:scrollが設定されている場合はそこにあたっているscrollをautoに変えることでうまく動くかもしれません。

投稿2018/08/08 07:19

編集2018/08/08 07:21
keisukeh

総合スコア657

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s.kun

2018/08/08 09:19

ご回答ありがとうございます。onsenui.css内にあるoverflowの設定を全てautoに変更しましたが、ダメでした。
keisukeh

2018/08/09 00:08

現状出ているスクロールバーがどのボックスのスクロールバーか特定することは出来ますか? スクロールバーが印刷されるということは通常のwindowに設定されているものではなくどこかの要素だと思うので。 cssに無いならjsで動的につけている可能性もありますので探ってみてはいかがでしょう。
s.kun

2018/08/09 00:56

onsen-css-components.css内に .page { position: absolute; } .page__content { position: absolute; } という記述があり、positionをstaticにするとスクロールバーが消えて、全ページが印刷できました。 後は、ご教示頂いた印刷用cssにて @media print { .page { position: static; } .page__content { position: static; } } とすることで、解決いたしました。 本当にありがとうございます。
guest

0

こういうことがやりたいのでしょうか。
https://hibikiji.com/tips-fullpagescreencapture/

投稿2018/08/08 07:24

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s.kun

2018/08/08 09:22

ご回答ありがとうございます。スクリーンショットではなく、印刷が行いたいです。ただ、結果としてはご教示頂いたツールでPDFを作成し印刷したものと同じになればよいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問