iT邦幫忙

0

Day 3 - 引入強大外援:使用 Docker 啟動 Gotenberg 轉檔微服務

  • 分享至 

  • xImage
  •  

今日目標
了解為何選擇 Gotenberg 作為 PDF 轉檔引擎,並在專案中撰寫 docker-compose.yml,透過 Docker 啟動無頭瀏覽器(Headless Browser)微服務。

核心概念:為什麼不用 Java 原生套件畫 PDF?
過去在開發醫療資訊系統(HIS)時,工程師常使用 JasperReports 或 iText 等 Java 原生套件來「畫」PDF。這會遇到幾個問題:

  1. 排版地獄:要用 X、Y 座標去精算表格位置,微調一條線就要重新編譯整支程式。
  2. 字型與環境依賴:在 Windows 開發好好的,部署到 Linux 伺服器後,因為缺少標楷體或微軟正黑體,產出的 PDF 全部變成亂碼(豆腐塊)。

解法:Gotenberg + Docker
Gotenberg 是一個開源的 PDF 引擎,它內部封裝了 Google Chromium 瀏覽器。
透過微服務架構,Spring Boot 只需要專心做一件事:「把資料塞進 HTML 裡」。然後透過 HTTP API 把 HTML 丟給 Gotenberg,它就會像我們在瀏覽器按下「列印成 PDF」一樣,完美、精準地把網頁轉成實體文件。這種「解耦(Decoupling)」的設計,是現代企業級應用的最佳實踐。

實作重點:建置 docker-compose.yml
在 VS Code 的專案根目錄(與 pom.xml 同層)新增 docker-compose.yml 檔案。

services:
  gotenberg:
    image: gotenberg/gotenberg:8
    container_name: medical-gotenberg
    ports:
      - "3000:3000"

測試指令:

docker-compose up -d

心得
雖然今天因為版本參數遇到了一些問題,但後來一步步抓出錯誤的地方,最後成功啟動 Gotenberg 轉檔微服務,而明天,準備實作前台登記 API!


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言