Tíquete #22233

チケット印刷

: 2010-06-17 15:32 Última Atualização: 2010-06-18 09:33

Relator:
Dono:
(Nenhum)
Tipo:
Estado:
Fechado
Componente:
(Nenhum)
Marcos:
(Nenhum)
Prioridade:
5 - Medium
Gravidade:
5 - Medium
Resolução:
Nenhum
Arquivo:
Nenhum

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を実行するように実装しました。(もちろんボタン自身も消すようにしました)

Ticket History (3/4 Histories)

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

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

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

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

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

2010-06-17 19:52 Updated by: jun66j5
Comentário

#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
  • Estado Update from Aberto to Fechado
  • Ticket Close date is changed to 2010-06-18 09:33
Comentário

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

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

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

Attachment File List

No attachments

Editar

Please login to add comment to this ticket » Login