refactor: replace pdftoppm with go-fitz for in-process PDF rendering

Switch PDF page rendering from external pdftoppm/pdftocairo subprocess calls
to github.com/gen2brain/go-fitz (MuPDF wrapper), eliminating the poppler-utils
runtime dependency. Enable CGO in Dockerfile builder stage and install gcc/musl-dev
for the static MuPDF link; runtime image remains unchanged.
This commit is contained in:
2026-03-31 21:21:17 +08:00
parent 86dacb61a6
commit 84ce6f6b92
4 changed files with 48 additions and 90 deletions

5
go.mod
View File

@@ -9,6 +9,7 @@ require (
github.com/alibabacloud-go/tea-utils v1.4.5
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/gen2brain/go-fitz v1.24.15
github.com/gin-gonic/gin v1.9.1
github.com/google/uuid v1.6.0
github.com/jtolds/gls v4.20.0+incompatible
@@ -39,6 +40,7 @@ require (
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/ebitengine/purego v0.8.4 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
@@ -51,6 +53,7 @@ require (
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/jupiterrider/ffi v0.5.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
@@ -75,7 +78,7 @@ require (
golang.org/x/arch v0.8.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/net v0.21.0 // indirect
golang.org/x/sys v0.17.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/text v0.20.0 // indirect
golang.org/x/time v0.5.0 // indirect
google.golang.org/protobuf v1.34.1 // indirect