🐇
pdfme 開発者レター 2023年12月
pdfme の開発について何をしているか定期的にまとめることをやっていきます。
記念すべき第一回。
今月やったこと
細かい修正もろもろは省略。
色指定するときのバリーデーションとかドキュメント更新などがありました。コントリビューターの方がいろいろと修正してくれているので感謝。
ReadOnly系のスキーマを追加。
- V3.2.0でリリース済み https://github.com/pdfme/pdfme/releases/tag/3.2.0
- これは動的テーブル実現のために必要なパーツの一つ。
- 新規
- Shape系
- Line
- Rectangle
- Ellipse
- SVG
- pdf-libのフォークがSVGのレンダリングを実装していたのでそれをpdfme/pdf-libに取り込んでそれを内部で使って実現
- Shape系
- 既存
- Text
- Image
basePdfに白紙のPDFをサイズ指定、パディングを設定できるようにする
- まだマージされていないが、もう時期マージされるだろう。これはV4から利用可能。
- これも動的テーブル実現のために必要なパーツの一つ。
バーコードスキーマに includetext オプションを追加
- V3.2.1でリリース済み https://github.com/pdfme/pdfme/releases/tag/3.2.1
- 新しいコントリビューターの方が実装してくれた。感謝。
既存のシステムをリプレースしたい、拡張したい会社とのディスカッション
- 日本、アメリカ、インドの会社とコンタクトをとっている
- 興味深かったのが、pdfgeneratorapi を使っているアメリカの会社との話。
- テンプレートのデザイナーをサービスに組み込めないのでpdfmeに興味を持ってくれている様子
- また、pdfgeneratorapi はテンプレートを組み込んだ側のサービスに保存できない点も不満とのこと。
- しかしテーブル機能がpdfmeにはないのでまだ様子見している様子
- pdfgeneratorapi をリプレースできればpdfmeはマーケットインできるだろうと思った
- アウトオブザボックスのソリューションとして、クラウドサービス版の提供を検討中
- ライセンスがあれば、フォント、各種プラグインの設定、デザイナーの組み込み、サーバーで生成したい人はPDF生成サーバーを立てる。という手間を省いてすぐに使えるようにするという選択肢を与える。
- アウトオブザボックスのソリューションとして、クラウドサービス版の提供を検討中
やっていること
基本的にV4に向けて開発をしている。v4ブランチにて作業中。
動的テーブルの実装に向けて
-
インハウスでテーブルのレンダリングを実装していた人がpdfmeに統合したいという話がdiscordで出た。
- コールバックで各種スキーマをレンダリングするという面白いアイデアが…!
- この方式ならネストしたテーブルの実装も実現可能という全く思ってなかった角度のアイデア。かっこよすぎ。
- コールバックで各種スキーマをレンダリングするという面白いアイデアが…!
-
現在はどのような要件を実装するか、どうやって実装するかを議論している段階。
- 冬休み、残りの時間は実装方法など頭にあることを整理してドキュメントと、疑似コード的なものにする予定
- 元々は https://github.com/simonbengtsson/jsPDF-AutoTable を参考にして実装しようとしていた
- テーブルスキーマ内で既存のスキーマのレンダリング処理を呼ぶという方式で書いていくのが良さそう。
UXの改善
- スキーマを追加する際のUXを改善できるのでやりたい。既存のビルドイン、サードパーティのスキーマにとってブレイキングチェンジになるのでこれもV4として実装して、リリースしたい。
来月、来年も引き続きテーブルの実装に向けて、コツコツとやっていく感じになる。
テーブルはかなり複雑な実装になる可能性がある。しかし微妙なものならリリースするつもりはないので、ぶっちゃけいつリリースできるかはわからない。できるだけシンプルに設計したい。
まだちゃんとissueに書き出せてはいないが、テーブルはレイアウトとボーダーのスタイルのみを担当し、カラム(ヘッダー)に既存の各レンダラーの設定を与える。それに続くRowはInputにしたがって既存のレンダラーで描画するだけ。という形がいいように思える。
まだまだ課題はあるが、時間をかけて実装していくつもりだ。
Discussion