5

HTMLドキュメントを印刷または印刷プレビューするときに、ブラウザー、特にFirefoxまたはChromeが改ページを挿入する場所を見つけようとしています。今のところ、ブレークを回避したくはありませんし、ブレークを配置する正確な場所を定義したくもありません。CSS 2.1 および CSS 3.0 で定義されている page-break-* 要素を認識しています。現在のページの最後の要素と次のページの最初の要素を把握し、それらを実際の HTML コードに関連付けたいと思っています。

私の知る限り、登録できるイベントやシグナルはありません。次に考えたのは、webkit または gecko にパッチを適用し、カスタム シグナル/イベントを追加することです。ただし、改ページ コードがあまりにも多くのファイルやメンバーに散らばっていない場合にのみ、これが可能です。

私は完全な解決策を求めているのではなく、これを達成する方法についての考えやヒントを求めているわけではありません。

提案やアイデアをお寄せいただきありがとうございます:)

更新:結果に応じて元の HTML ファイルを変更および操作したいので、改ページの位置をプログラムで把握する必要があります。

4

1 に答える 1

0

正確に何を達成しようとしていますか?ページ分割と、メディアクエリでCSSのみを使用してページが印刷されているかどうかに応じて、ページのスタイルを設定できます。

CSSがユースケースに十分でなく、レンダラーにパッチを適用することが適切な解決策である場合:Geckoでは、AddPageBreakItemの呼び出しに対してnsCSSFrameConstructor.cppをgrepて、ブレークを挿入している場所を特定できます。ページ付けされたnsPresContextは、これが印刷または印刷プレビュー用のフレームであることを意味します。nsPresContext::IsPaginatedおよびnsPresContext::IsRootPaginatedDocumentへの呼び出しを探します。

于 2012-11-12T16:56:54.460 に答える