プロジェクト

全般

プロフィール

概要

このプロジェクトは終了しているため読み取り専用です。

07/10 クローズ済

apサーバ使わずにlambdaを使った。
※微妙に仕様異なるがやっていることはapサーバと同じ

検証用(指示書)のチケットを"Export as PDF"すると動作する。
技術的におよそ再現できそう。
本番実装するにあたって詳細な作り込みポイントとしては

  1. プラグインの修正(pdf出力ボタンの配置修正とか)
  2. カスタムフィールドの追加(指示書入力項目をエクセルから再現)
  3. カスタムフィールドをpdfにプロットする座標をpyに反映

以上






本業の案件でredmine使えそう
しかし,チケットの印刷デザインカスタマイズできないことが致命的(レイアウト,デザインの要件)
機能標準でpdfエクスポート,印刷あるが,カスタマイズ性は皆無
チケットデザインを要件に合わせる方法を検討/実装してみる

検討

  1. プラグインの使用
    PDFカスタマイズのプラグインがないか?
    https://www.redmineup.com/pages/plugins/reporter
    上記位しかない&テンプレ作成は必須&どこまでいじくれるか不明&有料

  1. カスタムテンプレートの作成
    Redmineのソースコードを直接変更する
    以下のファイルを編集することでPDFのレイアウトを変更

    lib/plugins/pdf.rb: PDF生成のロジックが含まれているファイルらしい
    ここでフォント、レイアウト、スタイルを変更できる

    ソースコードいじるの怖いけど最短ルートな気がする
    ちゃんとバージョン管理すれば保守性も問題無いと思う
    redmine&rubyの制約がある

  1. API連携とサードパーティツールの利用
    REST APIを利用してチケットデータを取得し、外部APdePDF生成
    (例:LaTeX、FOP、ReportLabなど)でカスタムPDFを生成する方法
    このアプローチでは、制約は皆無.最も柔軟に対応可能

3が良いと思う.

要件が不明確なため,制約が最小で後からいくらでも変更可能.
api-keyを使って外部apを叩くアーキテクチャなので,今後の知見的にも有用

概要

  • チケットのpdfエクスポートボタンを追加(既存オーバーライト)するredmineプラグイン
  • チケットidを引数にapサーバにリクエストを飛ばす
  • apサーバでREST APIキーを利用してチケットデータを取得し、PDF生成する
  • pdfをredmineに返し,ダウンロードさせる

備考

  • redmineサーバにapサーバ(tomcat)を同居させる
  • pdfは雛型PDF(項目を空欄のエクセルをPDF化したもの)に座標指定してチケットから該当の値をオーバーレイする

チケットトラッキング  詳細

未完了 完了 合計
task 0 5 5

すべてのチケットを表示 | サマリー

メンバー

管理者: masaya_abe

メンバー: admin