任务单 #22233

チケット印刷

开放日期: 2010-06-17 15:32 最后更新: 2010-06-18 09:33

报告人:
属主:
(无)
类型:
状态:
关闭
组件:
(无)
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
文件:

Details

 チケットを印刷したいと思い。ちょっと拡張したら思ったより実用的でしたので、ご報告します。
 ↓のようなjavaScriptを実行すると、チケットだけが表示されますので、それを印刷しました。

  1. $("#banner").remove();
  2. $("#mainnav").remove();
  3. $("#footer").remove();
  4. $("#propertyform").remove();
  5. $("#help").remove();
  6. $("#altlinks").remove();
  7. $("#content > h1").remove();
  8. $("#ctxtnav").remove();
  9. $("#tracdragdrop_indicator").remove();
  10. $("#attachments").remove();
  11. $("#changelog").remove();
  12. $('#content > h2').remove();
 私はチケット画面に「印刷用に整形」ボタンを配置し、クリックすると、↑のjavaScriptを実行するように実装しました。(もちろんボタン自身も消すようにしました)

任务单历史 (3/4 Histories)

2010-06-17 15:32 Updated by: pietomita
  • New Ticket "チケット印刷" created
2010-06-17 18:13 Updated by: None
评论

印刷レイアウトをカスタマイズする機能は、私もほしいです。
っが、どう印刷したいかは人によると思いますので、かなりいろいろ弄れないと一般受けしそうに無いところが悩ましい…

っで、↑のスクリプトなんですが…意図がよくわからない。
取り外してるほとんどの要素が印刷対象外なので、普通に印刷してもバナーやらナビやらは印刷されないはず。
(ブラウザによるのかもしれませんが、IE&Fx3 では印刷されませんね。) なんか、別の意図があるのかな?

普通にブラウザの印刷メニューを使った場合、添付ファイルと履歴は印字されるので、それが邪魔なら

  1. $("#attachments").remove();
  2. $("#changelog").remove();
  3. $('#content > h2').remove();
これだけ適用して印刷すれば、同じような出力になりますね。たぶん。

2010-06-17 19:52 Updated by: jun66j5
评论

#mainnav とかは css/trac.css で @media print を使って印刷上に出力されないようになってますよ…というのは置いといて。

#attachments が常に印字されなくてもいいのであれば $TRACENV/templates/site.html を以下の内容で作成してもらって...

<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      py:strip="">
<py:match path="head" once="true" buffer="false"><head>
  ${select('*|text()')}
  <link rel="stylesheet" href="/trac_common/site.css" type="text/css" />
</head></py:match>
</html>
CollabNetSVN\httpd\htdocs\trac_common\site.css を ↓ みたいな感じ(この中身は好きなように)とかすれば
@media print {
 .ticket #attachments, .ticket #changelog { display: none }
}
目的が達成できると思います。

あとは site.css と合わせて site.js も読み込むようにしておくのもいいと思います。

個々の TRACENV ごとじゃなくて、すべて TRACENV に適用したい場合は [inherit] file[inherit] templates_dir と組み合わせれば、1つの site.html をすべてに適用…みたいなことも出来ます。

2010-06-18 09:33 Updated by: pietomita
  • 状态 Update from 开启 to 关闭
  • Ticket Close date is changed to 2010-06-18 09:33
评论

コメントありがとうございます。@media printの存在を知りませんでしたので、てっきり表示されているまま、印刷されると思い込んでいました。 印刷時には#changelog/#attachments といった部分も印刷されなくていい(印刷するのは打合せ用の資料なので、changelogがだらだらあったも困るし、添付ファイルは必要なら別に印刷するし)ので、

  1. #attachments , #changelog, #content > h2, #content > h1{
  2. display: none;
  3. }

 というのをcssファイルに追記しました。お手数をおかけしました。

Attachment File List

No attachments

编辑

Please login to add comment to this ticket » 登录名