A developer-friendly API for converting numerous document formats into PDF files, and more!
Gotenberg 8 is now out 🎉
For users of 7.x
, the transition to this version should be relatively smooth. Most significant changes were introduced in 7.10.x
. This release primarily removes deprecated elements (flags, form fields, etc.) and introduces eagerly anticipated features for Chromium. Read on for detailed information.
If you're upgrading from Gotenberg 7, it's recommended to begin with the latest 7.x
version, specifically 7.10.2
. Monitor the logs of your Gotenberg instances. Pay attention to warnings at startup and during runtime to identify deprecated features in use that will be unavailable in Gotenberg 8.
Refer to the following lists for deprecated elements:
--api-read-timeout
--api-process-timeout
--api-write-timeout
--api-webhook-allow-list
--api-webhook-deny-list
--api-webhook-error-allow-list
--api-webhook-error-deny-list
--api-webhook-max-retry
--api-webhook-retry-min-wait
--api-webhook-retry-max-wait
--api-disable-webhook
--chromium-user-agent
--chromium-failed-starts-threshold
--uno-listener-start-timeout
--uno-listener-restart-threshold
--unoconv-disable-listener
userAgent
(Chromium)pdfFormat
nativePdfA1aFormat
(LibreOffice)nativePdfFormat
(LibreOffice)PDF/A-1a
as pdfa
value (see https://gotenberg.dev/docs/troubleshooting#pdfa-1a).chromium_active_instances_count
chromium_failed_starts_count
unoconv_active_instances_count
libreoffice_listener_active_instances_count
unoconv_listener_active_instances_count
libreoffice_listener_queue_length
unoconv_listener_queue_length
pdftk_active_instances_count
qpdf_active_instances_count
POST /forms/chromium/screenshot/url
POST /forms/chromium/screenshot/html
POST /forms/chromium/screenshot/markdown
format
("png", "jpeg" or "webp"), quality
(jpeg only, 0 to 100), omitBackground
, optimizeForSpeed
(optimize image encoding for speed not for resulting size).failOnHttpStatusCodes
: return a 409 Conflict response if the HTTP status code from the main page is not acceptable - thanks @TheRealPaco & @jmvezic!skipNetworkIdleEvent
: do not wait for Chromium network to be idle, allowing for faster conversions - thanks @rreynier!--chromium-clear-cache
: clear Chromium cache between each conversion - thanks @low613!--chromium-clear-cookies
: clear Chromium cookies between each conversion - thanks @low613!PDF/A-1a
like earlier releases, but PDF/A-1b
. A warning will appear in the logs if PDF/A-1a
is requested. Note that LibreOffice was never producing real PDF/A-1a
, they just make it clear now. Fixes #746 - thanks @stumpylog!--api-start-timeout
(default 30s) - fixes #750 - thanks @bahag-xvisnei!120.0.6099.109
(except for armhf
).7.6.4
.This is the last minor release of Gotenberg 7 before version 8 🎉 See https://github.com/gotenberg/gotenberg/issues/710 for more details.
⚠️ The Chromium and LibreOffice modules behavior is changing with this release; consider reading the details below to have a better understanding.
New form field pdfua
: PDF for Universal Access for optimal accessibility. Available for:
/forms/chromium/convert/*
/forms/libreoffice/convert
/forms/pdfengines/convert
/forms/pdfengines/merge
Closes https://github.com/gotenberg/gotenberg/issues/621 - thanks @giamma!
There were memory leaks due to defunct processes. As each conversion was starting a Chromium process, it was adding up quickly overtime. Alas, the issue is still upstream and it is recommended to have a long-running browser to handle conversions.
⚠️ There is now a single Chromium browser that handles all conversions. It manages them one by one, like the LibreOffice process in stateful mode. Under heavy load, you should consider increasing the number of Gotenberg instance.
Please note that this only mitigates the memory leaks; according to your metrics, consider restarting your Gotenberg instances from time to time.
New flags:
--chromium-restart-after
- Number of conversions after which Chromium will automatically restart. Set to 0 to disable this feature (default 0).--chromium-auto-start
- Automatically launch Chromium upon initialization if set to true; otherwise, Chromium will start at the time of the first conversion (default false).--chromium-start-timeout
- Maximum duration to wait for Chromium to start or restart (default 10s).New metrics:
chromium_requests_queue_size
- Current number of Chromium conversion requests waiting to be treated.chromium_restarts_count
- Current number of Chromium restarts.Fixes https://github.com/gotenberg/gotenberg/issues/642 - thanks @petternordlanderhelo & @JulienWeintraub!
Newer versions of LibreOffice were unstable in stateful mode due to the abrupt deletion of their user profile directory. The "cleaning" system of files have been updated so that it now works with the latest LibreOffice version available on Debian.
⚠️ There is no more a stateless mode with LibreOffice, it now works the same way as the new version of the Chromium module.
New flags:
--libreoffice-restart-after
- Number of conversions after which LibreOffice will automatically restart. Set to 0 to disable this feature (default 10).--libreoffice-auto-start
- Automatically launch LibreOffce upon initialization if set to true; otherwise, LibreOffice will start at the time of the first conversion (default false).--libreoffice-start-timeout
- Maximum duration to wait for LibreOffice to start or restart (default 10s).New metrics:
libreoffice_requests_queue_size
- Current number of LibreOffice conversion requests waiting to be treated.libreoffice_restarts_count
- Current number of LibreOffice restarts.Fixes https://github.com/gotenberg/gotenberg/issues/576 - thanks @PierreSchwang!
Form field
userAgent
Flag:
chromium-failed-starts-threshold
Metrics:
chromium_active_instances_count
chromium_failed_starts_count
Flags:
uno-listener-start-timeout
uno-listener-restart-threshold
Metrics:
unoconv_active_instances_count
libreoffice_listener_active_instances_count
libreoffice_listener_queue_length
pdfa
now replaces the pdfFormat
and nativePdfFormat
form fields.⚠️ The following modules have been renamed:
uno
-> libreoffice-api
uno-pdfengine
-> libreoffice-pdfengine
116.0.5845.180-1
for armhf
variant, updates to 119.0.6045.159
for others.7.5.8.2
.2.040
(Unicode 15.1
).chromium-failed-starts-threshold
(default 5), the /health
route will return a 503 Service Unavailable
error - thanks @spewu!113.0.5672.126
for amd64
variant, 112.0.5615.138-1
for others.