diff --git a/build/Dockerfile b/build/Dockerfile index 3f65ed0..f8dff9a 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -171,7 +171,7 @@ RUN \ apt-get update -qq &&\ apt-get upgrade -yqq &&\ DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends -t bookworm-backports libreoffice &&\ - curl -Ls https://raw.githubusercontent.com/gotenberg/unoconverter/v0.0.1/unoconv -o /usr/bin/unoconverter &&\ + curl -Ls https://raw.githubusercontent.com/gotenberg/unoconverter/v0.1.1/unoconv -o /usr/bin/unoconverter &&\ chmod +x /usr/bin/unoconverter &&\ # unoconverter will look for the Python binary, which has to be at version 3. ln -s /usr/bin/python3 /usr/bin/python &&\ diff --git a/pkg/modules/libreoffice/api/api.go b/pkg/modules/libreoffice/api/api.go index ca8b482..aaacab0 100644 --- a/pkg/modules/libreoffice/api/api.go +++ b/pkg/modules/libreoffice/api/api.go @@ -62,6 +62,10 @@ type Options struct { // PageRanges allows to select the pages to convert. PageRanges string + // UpdateIndexes specifies whether to update the indexes before conversion + // or not, with the risk of disabling links in documents. + UpdateIndexes bool + // ExportFormFields specifies whether form fields are exported as widgets // or only their fixed print representation is exported. ExportFormFields bool @@ -152,6 +156,7 @@ func DefaultOptions() Options { Password: "", Landscape: false, PageRanges: "", + UpdateIndexes: true, ExportFormFields: true, AllowDuplicateFieldNames: false, ExportBookmarks: true, diff --git a/pkg/modules/libreoffice/api/libreoffice.go b/pkg/modules/libreoffice/api/libreoffice.go index 652d0e0..a6109b1 100644 --- a/pkg/modules/libreoffice/api/libreoffice.go +++ b/pkg/modules/libreoffice/api/libreoffice.go @@ -279,6 +279,10 @@ func (p *libreOfficeProcess) pdf(ctx context.Context, logger *zap.Logger, inputP args = append(args, "--export", fmt.Sprintf("PageRange=%s", options.PageRanges)) } + if !options.UpdateIndexes { + args = append(args, "--disable-update-indexes") + } + args = append(args, "--export", fmt.Sprintf("ExportFormFields=%t", options.ExportFormFields)) args = append(args, "--export", fmt.Sprintf("AllowDuplicateFieldNames=%t", options.AllowDuplicateFieldNames)) args = append(args, "--export", fmt.Sprintf("ExportBookmarks=%t", options.ExportBookmarks)) diff --git a/pkg/modules/libreoffice/routes.go b/pkg/modules/libreoffice/routes.go index cf712c0..47a2846 100644 --- a/pkg/modules/libreoffice/routes.go +++ b/pkg/modules/libreoffice/routes.go @@ -39,6 +39,7 @@ func convertRoute(libreOffice libreofficeapi.Uno, engine gotenberg.PdfEngine) ap password string landscape bool nativePageRanges string + updateIndexes bool exportFormFields bool allowDuplicateFieldNames bool exportBookmarks bool @@ -68,6 +69,7 @@ func convertRoute(libreOffice libreofficeapi.Uno, engine gotenberg.PdfEngine) ap String("password", &password, defaultOptions.Password). Bool("landscape", &landscape, defaultOptions.Landscape). String("nativePageRanges", &nativePageRanges, defaultOptions.PageRanges). + Bool("updateIndexes", &updateIndexes, defaultOptions.UpdateIndexes). Bool("exportFormFields", &exportFormFields, defaultOptions.ExportFormFields). Bool("allowDuplicateFieldNames", &allowDuplicateFieldNames, defaultOptions.AllowDuplicateFieldNames). Bool("exportBookmarks", &exportBookmarks, defaultOptions.ExportBookmarks). @@ -149,6 +151,7 @@ func convertRoute(libreOffice libreofficeapi.Uno, engine gotenberg.PdfEngine) ap Password: password, Landscape: landscape, PageRanges: nativePageRanges, + UpdateIndexes: updateIndexes, ExportFormFields: exportFormFields, AllowDuplicateFieldNames: allowDuplicateFieldNames, ExportBookmarks: exportBookmarks,