🐇

pdfme 開発者レター 2024年1月

2024/01/28に公開

今月やったこと

V4の実装

  • テーブルを粛々と実装していた

    • 他の開発者が実装していたものもあったが jsPDF-AutoTable の実装をベースに作成することにした

  • 技術検証から始めてそのまま勢いで実装した。

    • とりあえずそれっぽい感じでテーブルヘッダー、ボディのスタイリング、カラムを追加・削除・リサイズなどを実装

    • やったことを一個一個書き出せないのだが、とりあえずテーブルをデザインしたり、PDFを生成できるようにはなってきた

V3の回収

  • UIでvite,webpack等でDesginerがちゃんとエクスポートできない問題が3.1.0からあったので修正
    • https://github.com/pdfme/pdfme/pull/415
    • UIパッケージにのビルドに問題があった
      • pdfjs-distの4系でtop-level awaitが使われており、それをviteでビルドしていたが、esmしかビルドしていなかった。umdが必要なケースでも問答無用でesmも使わせていたので、エクスポートしたモジュールがundefinedになっており、このようなことが起こった。
      • umdのビルドを作るようにして修正
      • pdfjs-distは3系にダウングレードした
  • バーコードでフォーカスがおかしい
    • https://github.com/pdfme/pdfme/pull/414
    • フォームとして動かした時にバーコードがレンダリングされるとInput要素にフォーカスが当たってしまう問題があった
      • 明らかに意図していないフォーカスなのに自動でフォーカスされてしまうので修正

やっていること

動的テーブルの実装に向けて

  • V4のテーブルの実装
    • テーブルが増加し、ページを跨いだ際にテーブルを分割する処理
    • もろもろのバグ修正
    • 下記のPRで途中ですがテーブルの実装が見れます
      https://github.com/pdfme/pdfme/pull/408

動的テーブルの実現はまだまだ先は長いなと思っています。が、少しづつ前進しています。

ユースケースとしてはInvoiceを想定し、どこまで機能を絞るか、何をサポートするかなど、あらかた決めることができた一月でした。

複雑になりがちなテーブルでも、pdfmeのコンセプトである「ユーザーフレンドリー」という部分をなるべく守りたいなと思いながら実装しています。

楽しい!
やっぱwysiwygはいいですね。

Discussion