Redmine2.4でのガントチャートPDF「A3」版出力

2,565 views
Skip to first unread message

cocohina

unread,
Feb 12, 2014, 3:56:33 AM2/12/14
to redmine-...@googlegroups.com
こんにちは。
web上で色々と「ガントチャート PDF A3」で探しても、古いRedmineバージョンのカスタマイズ内容しか見つけられず苦慮しています。

/var/lib/redmine/lib/redmine/helpers/gantt.rb とか、
/var/lib/redmine/lib/redmine/export/pdf.rb とか、
/var/lib/redmine/lib/plugins/rfpdf/lib/rfpdf/fpdf.rb

に当たりを付けようとしているのですが、如何せんRuby不案内の自分にとっては厳しいものがありまして、少しずつヒントを見つけられればと考えています。

ポイントになる部分をご存知の方、アドバイスをお願いできませんか。

宜しくお願い致します。

nobu_toyofuku

unread,
Feb 14, 2014, 4:55:17 AM2/14/14
to redmine-...@googlegroups.com
  豊福です。

2014年2月12日水曜日 17時56分33秒 UTC+9 cocohina:
こんにちは。
web上で色々と「ガントチャート PDF A3」で探しても、古いRedmineバージョンのカスタマイズ内容しか見つけられず苦慮しています。

全然試してないのですが、ガントチャートのPDF出力は

app/controllers/gantts_controller.rb
  def show
    ...
    format.pdf  { send_data(@gantt.to_pdf, :type => 'application/pdf', :filename => "#{basename}.pdf") }

lib/redmine/helpers/gantt.rb
  def to_pdf
    ...
    pdf = ::Redmine::Export::PDF::ITCPDF.new(current_language)

lib/redmine/export/pdf.rb
  class ITCPDF < TCPDF
    ...
    super(orientation, 'mm', 'A4', (pdf_encoding == 'UTF-8'), pdf_encoding)

の流れで呼ばれるような気がするので、まずはこの super(... 'A4', ...) のところを 'A3' にして試してみてはどうでしょうか。
うまくいかなければまた報告頂けたらと。
---

Takashi Maruyama

unread,
Feb 14, 2014, 5:26:14 AM2/14/14
to redmine-...@googlegroups.com
豊福様

以前にもお世話になりました。
ありがとうございます。

lib/redmine/export/pdf.rb の

 super(orientation, 'mm', 'A4', (pdf_encoding == 'UTF-8'), pdf_encoding)
のところを 'A3' にすると、
PDFファイルサイズは確かに420 x 297 mmになり、A3横レイアウトでPDF出力されました。

ただ、別に定義されているコントローラーか何かでXY座標が決め打ちされているようで、罫線出力範囲と日付範囲がA4の大きさのままでした。
もう少し調べてみます。

また、このpdf.rbの 'A4' を変更すると、ガントチャートだけでなくチケットのPDF出力サイズもA3になるため、やはり別のrbファイルを変更しないと思惑通りにいかないようです。



2014年2月14日 18:55 nobu_toyofuku <nobu.t...@gmail.com>:

--
このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
このトピックの登録を解除するには、https://groups.google.com/d/topic/redmine-users-ja/KO2oM7tmY10/unsubscribe にアクセスします。このグループから退会し、グループのすべてのトピックの登録を解除するには、redmine-users-...@googlegroups.com にメールを送信します。
このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/redmine-users-ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

丹羽直也

unread,
Feb 14, 2014, 5:27:32 AM2/14/14
to Redmine Users, (japanese)

まさにご指摘のファイル(特に上2つ)が該当箇所だと思います。

https://github.com/redmine/redmine/blob/master/lib/redmine/export/pdf.rb#L45

ここで用紙サイズを指定しつつ、

https://github.com/redmine/redmine/blob/master/lib/redmine/helpers/gantt.rb#L528

ここで、レイアウトしていってます。用紙サイズを大きくするとなると、レイアウトの全体的なバランスも変わってくるので、そこに関して調整していく必要はあります。

2014年2月12日 17:56 cocohina <maruyama...@gmail.com>:

> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。

> このグループから退会し、メールの受信を停止するには、redmine-users-...@googlegroups.com


> にメールを送信します。
> このグループに投稿するには、redmine-...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/redmine-users-ja からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

--
Naoya Niwa

nobu_toyofuku

unread,
Feb 18, 2014, 4:12:18 AM2/18/14
to redmine-...@googlegroups.com
  豊福です。

2014年2月14日金曜日 19時26分14秒 UTC+9 cocohina:
ただ、別に定義されているコントローラーか何かでXY座標が決め打ちされているようで、罫線出力範囲と日付範囲がA4の大きさのままでした。
もう少し調べてみます。

lib/redmine/helpers/gantt.rb の to_pdf のコードには幅や高さが直接数値で埋め込まれてますね。
頑張ってそれぞれ 1.4倍していけば取りあえず A3用にはなるかもしれませんが・・・
 
また、このpdf.rbの 'A4' を変更すると、ガントチャートだけでなくチケットのPDF出力サイズもA3になるため、やはり別のrbファイルを変更しないと思惑通りにいかないようです。

そうですね。そもそも A4 しか想定していない作りになっているんでしょうね。
---
 

nobu_toyofuku

unread,
Nov 19, 2014, 7:05:28 AM11/19/14
to redmine-...@googlegroups.com

2014年2月12日水曜日 17時56分33秒 UTC+9 cocohina:

web上で色々と「ガントチャート PDF A3」で探しても、古いRedmineバージョンのカスタマイズ内容しか見つけられず苦慮しています。

 redmine-2.4 ではなくて redmine-2.6 の話になりますが。
先日 redmine の PDF出力の改善されている内藤さんにお会いしたときに A3出力のことを質問したら
「redmine-2.6 だったらコード中の A4 と書いてあるところを A3 に書き換えるだけでもしかしたらうまく出力されるかも」
とのお話でした。

「A4」で grep かけると
lib/redmine/export/pdf.rb:37:          super(orientation, 'mm', 'A4')
ですか。

redmine-2.6 に移行できるなら試してみてはいかがでしょうか。
---

cocohina

unread,
Nov 19, 2014, 9:33:29 AM11/19/14
to redmine-...@googlegroups.com
とよふく様

随分と古くなったトピック、情報提供ありがとうございます!
職場のredmineが2.4.6で、年内に2.6.0にアップできたらなぁ…とおぼろげに考えていたところ偶然にも。
pdf.rb の書き換えだけでイケるなら、試してみる価値、十分ありそうです。

すぐには試せない状況ですが、是非参考にさせていただきます。
うまくいった暁には良い報告が出来れば良いのですが。

cocohina

unread,
Nov 28, 2014, 10:35:11 AM11/28/14
to redmine-...@googlegroups.com
豊福さま

少々遅くなりましたが、Redmine2.6.0でPDFをA3版で、ということで
lib/redmine/export/pdf.rb:37:          super(orientation, 'mm', 'A4')
をひとまず何も考えず、A3 に書き換えてみたところ…

苦笑いしてしまう結果になりました。

チケットの一覧印刷やガントチャートなど、元々A4横でPDF化されるものは一発でA3にすることに成功しました。
罫線の幅が自動的にA3横の幅まで描画され、テキストも綺麗に枠内いっぱいまで広がり、きちんとA3の大きさでテキストの折り返しが効いていました。

が、通常のチケットをPDF化したときのように、A4縦でPDF化されるものは、PDFのサイズだけがA3になり、罫線の描画やテキスト生成の大きさがA4のまま変化しませんでした。

うーん。惜しい。

当然と言えば当然かもしれませんが、何から何まで動的に変更させるようにはなっていないようです。

lib/redmine/export/pdf.rb 以外のrubyファイルも少し手を加えるべきなのかも?というところで、ひとまず作業は止めました。

もう少し情報収集してみたいと思います。

ありがとうございます。

Reply all
Reply to author
Forward
0 new messages