0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Go言語でPDFを作成したい

Last updated at Posted at 2025-02-04

はじめに

私は普段、Go言語で開発を行うことが多いです。

その中で、PDFを作成する処理が必要となりました。
課金せずに実装したく、何を使えば良いのか悩んだ中で私が取った方法を紹介します。

結論

  1. Excelのテンプレートを作成
  2. テンプレートに値を挿入し、Excelファイルを作成
  3. ExcelをPDFに変換

以上の方法で実現しました。

Excelファイルの操作

excelizeを使用。
テンプレートに変数名を埋め込み、その埋め込まれた箇所に変数を挿入することで動的なファイル作成を実現。

ExcelをPDFに変換

LibreOfficeの変換機能をREST APIで提供するunoserverのdocker imageを使用することにしました。

デフォルトだと2004番ポートにexcelファイルをPOSTするだけでPDF出力をしてくれます。

使い方の参考

最初に考えた方法

GoのPDF作成ライブラリで検索すると、いくつか存在します。

いくつか存在するのですが、実際に使ってみると、日本語フォントの適用が難しかったり、レイアウト調整が面倒だったりとしっくりこない。

テンプレートをもとに文書を作成したいけれど、コードベースだとテンプレートを変えたい時に工数がかかる。

HTML/CSSで作成

きれいな文書、という意味ではこれが良い方法かもしれない。
ただ、今回の場合はexcelファイルも作成できるということもあり、最初の方法を採用しました。

例えば、作成したxlsxをダウンロードしてそこにユーザーが直接データを入力、それをアップロードしてもらう、などというユースケースにも使うことができます。

まとめ

今の私が調査した中で、採用した方法を紹介しましたが、結局docker imageに頼ってしまっており、もっと良い方法があれば教えていただきたいです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?