@@ -134,13 +134,15 @@
< / a > Install< / h1 >
< p > Gotenberg is shipped within a Docker image.< / p >
< blockquote >
< p > It uses a dedicated non-root user called < code > gotenberg< / code > with uid and gid < code > 1001< / code > .< / p >
< / blockquote >
< p > You may start it with:< / p >
< pre class = "chroma" > $ docker run --rm -p < span class = "m" > 3000< / span > :3000 thecodingmachine/gotenberg:5
< pre class = "chroma" > $ docker run --rm -p < span class = "m" > 3000< / span > :3000 thecodingmachine/gotenberg:6
< / pre >
< p > All processes in the Docker container runs as a dedicated non-root user called < code > gotenberg< / code > with user id < code > 1001< / code > from the working dir < code > /gotenberg< / code > .< / p >
< blockquote >
< p > The API will be available at < a href = "http://localhost:3000" > http://localhost:3000< / a > .< / p >
< / blockquote >
@@ -158,7 +160,7 @@
< / span > < span class = "w" > < / span > < span class = "c" > # your others services< / span > < span class = "w" >
< / span > < span class = "w" >
< / span > < span class = "w" > < / span > gotenberg< span class = "p" > :< / span > < span class = "w" >
< / span > < span class = "w" > < / span > image< span class = "p" > :< / span > < span class = "w" > < / span > thecodingmachine/gotenberg< span class = "p" > :< / span > < span class = "m" > 5 < / span > < span class = "w" >
< / span > < span class = "w" > < / span > image< span class = "p" > :< / span > < span class = "w" > < / span > thecodingmachine/gotenberg< span class = "p" > :< / span > < span class = "m" > 6 < / span > < span class = "w" >
< / span > < / pre >
< blockquote >
@@ -178,7 +180,7 @@ Otherwise the API will not be able to launch Google Chrome and LibreOffice (unoc
< p > The more resources are granted, the quicker will be the conversions.< / p >
< / blockquote >
< p > Also, i n the deployment spec of the pod, specify the uid < code > 1001< / code > of the user < code > gotenberg< / code > :< / p >
< p > I n the deployment specification of the pod, also specify the uid < code > 1001< / code > of the user < code > gotenberg< / code > :< / p >
< pre class = "chroma" > securityContext:
privileged: false
@@ -200,7 +202,7 @@ Gotenberg API is available at <a href="http://localhost:3000">http://localhost:3
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go client< / h2 >
< pre class = "chroma" > $ go get -u github.com/thecodingmachine/gotenberg-go-client/v5
< pre class = "chroma" > $ go get -u github.com/thecodingmachine/gotenberg-go-client/v6
< / pre >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "clients.php_client" href = "#clients.php_client" >
@@ -225,6 +227,31 @@ Gotenberg API is available at <a href="http://localhost:3000">http://localhost:3
< / a > Environment variables< / h1 >
< p > You may customize the API behaviour thanks to environment variables.< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.log_level" href = "#environment_variables.log_level" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Log level< / h2 >
< p > The API provides structured logging allowing you to have relevant information
about what’ s going on.< / p >
< blockquote >
< p > If a TTY is attached, the log entries are displayed in text format with colors, otherwise in JSON format.< / p >
< / blockquote >
< p > You may customize the severity of the log entries thanks to the environment variable < code > LOG_LEVEL< / code > .< / p >
< p > It accepts one of the following severities: < code > " DEBUG" < / code > , < code > " INFO" < / code > (default) and < code > " ERROR" < / code > .< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.default_listen_port" href = "#environment_variables.default_listen_port" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Default listen port< / h2 >
< p > By default, the API will listen on port < code > 3000< / code > .< / p >
< p > You may customize this value with the environment variable < code > DEFAULT_LISTEN_PORT< / code > .< / p >
< p > This environment variable accepts any string that can be turned into a port number.< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.disable_google_chrome" href = "#environment_variables.disable_google_chrome" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Disable Google Chrome< / h2 >
@@ -264,35 +291,58 @@ Gotenberg API is available at <a href="http://localhost:3000">http://localhost:3
See the < a href = "#timeout" > timeout section< / a > .< / p >
< / blockquote >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.disable_logging_on_healthcheck " href = "#environment_variables.disable_logging_on_healthcheck " >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.maximum_wait_timeout " href = "#environment_variables.maximum_wait_timeout " >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Disable logging on healthcheck < / h2 >
< / a > Maximum wait timeout < / h2 >
< p > By default, the API will add a log entry when the < a href = "#ping" > healthcheck endpoin t< / a > is called .< / p >
< p > By default, the value of the form field < code > waitTimeou t< / code > cannot be more than 30 seconds .< / p >
< p > You may turn off this logging so as to avoid unnecessary entries in your logs with the environment variable < code > DISABLE_HEALTHCHECK_LOGGING < / code > .< / p >
< p > You may increase or decrease this limit thanks to the environment variable < code > MAXIMUM_WAIT_TIMEOUT < / code > .< / p >
< p > This environment variable operates in the same manner as the < code > DISABLE_GOOGLE_CHROME< / code > and < code > DISABLE_UNOCONV< / code > variables operate in that it accepts the strings < code > " 0 " < / code > or < code > " 1" < / code > as values, where < code > " 1" < / code > is enabled .< / p >
< p > It takes a string representation of a float as value (e.g < code > " 2.5 " < / code > f or 2.5 seconds) .< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.default_listen_por t" href = "#environment_variables.default_listen_por t" >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.default_webhook_url_timeou t" href = "#environment_variables.default_webhook_url_timeou t" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Default listen por t< / h2 >
< / a > Default webhook URL timeou t< / h2 >
< p > By default, the API will listen on port < code > 3000< / code > . For most use cases this is perfectly fine, but at times there may be cases where you need to change this due to port conflicts .< / p >
< p > By default, the API will wait 10 seconds before it considers the sending of the resulting PDF to be unsuccessful .< / p >
< p > You may customize this port location with the environment variable < code > DEFAULT_LISTEN_PORT< / code > .< / p >
< blockquote >
< p > See the < a href = "#webhook" > webhook section< / a > .< / p >
< / blockquote >
< p > This environment variable accepts any string that can be turned into a port number (e.g., the string < code > " 0" < / code > up to the string < code > " 65535" < / code > ) .< / p >
< p > You may customize this timeout thanks to the environment variable < code > DEFAULT_WEBHOOK_URL_TIMEOUT < / code > .< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.debug_logging_of_process_startup" href = "#environment_variables.debug_logging_of_process_startup" >
< p > It takes a string representation of a float as value (e.g < code > " 2.5" < / code > for 2.5 seconds).< / p >
< blockquote >
< p > The default timeout may also be overridden per request thanks to the form field < code > webhookURLTimeout< / code > .
See the < a href = "#webhook.timeout" > webhook timeout section< / a > .< / p >
< / blockquote >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.maximum_webhook_url_timeout" href = "#environment_variables.maximum_webhook_url_timeout" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Debug logging of process startup < / h2 >
< / a > Maximum webhook URL timeout < / h2 >
< p > By default, < code > stdout< / code > and < code > stderr< / code > messages from the started processes are disabled .< / p >
< p > By default, the value of the form field < code > webhookURLTimeout< / code > cannot be more than 30 seconds .< / p >
< p > You may enable some debug logging from starting the process by setting the environment variable < code > DEBUG_PROCESS_STARTUP < / code > .< / p >
< p > You may increase or decrease this limit thanks to the environment variable < code > MAXIMUM_WEBHOOK_URL_TIMEOUT < / code > .< / p >
< p > This environment variable operates in the same manner as the < code > DISABLE_GOOGLE_CHROME< / code > and < code > DISABLE_UNOCONV< / code > variables operate in that it accepts the strings < code > " 0 " < / code > or < code > " 1" < / code > as values, where < code > 1< / code > means < code > true< / code > .< / p >
< p > It takes a string representation of a float as value (e.g < code > " 2.5 " < / code > f or 2.5 seconds) .< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "environment_variables.maximum_wait_delay" href = "#environment_variables.maximum_wait_delay" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Maximum wait delay< / h2 >
< p > By default, the value of the form field < code > waitDelay< / code > cannot be more than 10 seconds.< / p >
< blockquote >
< p > See the < a href = "#html.wait_delay" > wait delay section< / a > .< / p >
< / blockquote >
< p > You may increase or decrease this limit thanks to the environment variable < code > MAXIMUM_WAIT_DELAY< / code > .< / p >
< p > It takes a string representation of a float as value (e.g < code > " 2.5" < / code > for 2.5 seconds).< / p >
< / div >
@@ -340,7 +390,7 @@ which will be converted to PDF.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -422,7 +472,7 @@ Also, <code>footer.html</code> CSS properties override the ones from <code>heade
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -517,7 +567,7 @@ see to the <a href="#fonts">fonts section</a>.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -583,7 +633,7 @@ $client->store($request, $dest);
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -643,7 +693,7 @@ a lot on JavaScript for rendering.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -712,7 +762,7 @@ If not, some of the content of the page might be hidden.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -786,7 +836,7 @@ in the file <code>index.html</code>. This function will convert a given markdown
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -869,7 +919,7 @@ See the <a href="#scalability">scalability section</a> to find how to mitigate t
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -921,7 +971,7 @@ $client->store($request, $dest);
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -956,7 +1006,7 @@ $client->store($request, $dest);
< h1 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "merge" href = "#merge" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Merge< / h1 >
< p > Gotenberg provides the endpoint < code > /convert/ merge< / code > for merging PDFs.< / p >
< p > Gotenberg provides the endpoint < code > /merge< / code > for merging PDFs.< / p >
< p > It accepts < code > POST< / code > requests with a < code > multipart/form-data< / code > Content-Type.< / p >
@@ -976,7 +1026,7 @@ will merge them and return the resulting PDF file.</p>
< / a > cURL< / h3 >
< pre class = "chroma" > $ curl --request POST < span class = "se" > \
< / span > < span class = "se" > < / span > --url http://localhost:3000/convert/ merge < span class = "se" > \
< / span > < span class = "se" > < / span > --url http://localhost:3000/merge < span class = "se" > \
< / span > < span class = "se" > < / span > --header < span class = "s1" > ' Content-Type: multipart/form-data' < / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @file.pdf < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @file2.pdf < span class = "se" > \
@@ -987,7 +1037,7 @@ will merge them and return the resulting PDF file.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -1050,7 +1100,7 @@ $client->store($request, $dest);
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -1109,7 +1159,7 @@ to given URL.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -1132,6 +1182,67 @@ $index = DocumentFactory::makeFromPath('index.html', 'index.html'
$request = new HTMLRequest($index);
$request-> setWebhookURL(' http://myapp.com/webhook/' );
$resp = $client-> post($request);
< / pre >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "webhook.timeout" href = "#webhook.timeout" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Timeout< / h2 >
< p > If a < code > webhookURL< / code > is provided, you may also send a form field named < code > webhookURLTimeout< / code > .< / p >
< p > The API will wait the given < strong > seconds< / strong > before it considers the sending of the resulting PDF to be unsucessful.< / p >
< p > It takes a float as value (e.g < code > 2.5< / code > for 2.5 seconds).< / p >
< blockquote >
< p > You may also define this value globally: see the < a href = "#environment_variables.default_webhook_url_timeout" > environment variables< / a > section.< / p >
< / blockquote >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "webhook.timeout.examples" href = "#webhook.timeout.examples" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Examples< / h3 >
< h4 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "webhook.timeout.examples.c_url" href = "#webhook.timeout.examples.c_url" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > cURL< / h4 >
< pre class = "chroma" > $ curl --request POST < span class = "se" > \
< / span > < span class = "se" > < / span > --url http://localhost:3000/convert/html < span class = "se" > \
< / span > < span class = "se" > < / span > --header < span class = "s1" > ' Content-Type: multipart/form-data' < / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @index.html < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > webhookURL< / span > < span class = "o" > =< / span > < span class = "s1" > ' http://myapp.com/webhook/' < / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > webhookURLTimeout< / span > < span class = "o" > =< / span > < span class = "m" > 2< / span > .5
< / pre >
< h4 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "webhook.timeout.examples.go" href = "#webhook.timeout.examples.go" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h4 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6" < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
< span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > _< / span > < span class = "o" > :=< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nf" > NewHTMLRequest< / span > < span class = "p" > (< / span > < span class = "s" > " index.html" < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf" > WebhookURL< / span > < span class = "p" > (< / span > < span class = "s" > " http://myapp.com/webhook/" < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf" > WebhookURLTimeout< / span > < span class = "p" > (< / span > < span class = "mf" > 2.5< / span > < span class = "p" > )< / span >
< span class = "nx" > resp< / span > < span class = "p" > ,< / span > < span class = "nx" > _< / span > < span class = "o" > :=< / span > < span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf" > Post< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
< h4 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "webhook.timeout.examples.php" href = "#webhook.timeout.examples.php" >
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > PHP< / h4 >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\HTMLRequest;
$client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
$index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
$request = new HTMLRequest($index);
$request-> setWebhookURL(' http://myapp.com/webhook/' );
$request-> setWebhookURLTimeout(2.5);
$resp = $client-> post($request);
< / pre >
< / div >
@@ -1168,7 +1279,7 @@ Otherwise a random filename is used.</p>
< svg xmlns = "http://www.w3.org/2000/svg" aria-hidden = "true" width = "14" height = "14" viewBox = "0 0 24 24" fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" class = "feather feather-link" > < path d = "M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" > < / path > < path d = "M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" > < / path > < / svg >
< / a > Go< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v5 " < / span >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg-go-client/v6 " < / span >
< span class = "kd" > func< / span > < span class = "nf" > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / span >
< span class = "nx" > c< / span > < span class = "o" > :=< / span > < span class = "o" > & < / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > Client< / span > < span class = "p" > {< / span > < span class = "nx" > Hostname< / span > < span class = "p" > :< / span > < span class = "s" > " http://localhost:3000" < / span > < span class = "p" > }< / span >
@@ -1211,7 +1322,7 @@ $resp = $client->post($request);
< / span > < span class = "w" > < / span > < span class = "c" > # your others services< / span > < span class = "w" >
< / span > < span class = "w" >
< / span > < span class = "w" > < / span > gotenberg< span class = "p" > :< / span > < span class = "w" >
< / span > < span class = "w" > < / span > image< span class = "p" > :< / span > < span class = "w" > < / span > thecodingmachine/gotenberg< span class = "p" > :< / span > < span class = "m" > 5 < / span > < span class = "w" >
< / span > < span class = "w" > < / span > image< span class = "p" > :< / span > < span class = "w" > < / span > thecodingmachine/gotenberg< span class = "p" > :< / span > < span class = "m" > 6 < / span > < span class = "w" >
< / span > < / pre >
< p > You may now launch your services using:< / p >
@@ -1238,6 +1349,33 @@ a simple <code>GET</code> request.</p>
< li > < a href = "https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/" > Configure Liveness and Readiness Probes< / a > < / li >
< / ul >
< p > If < code > LOG_LEVEL< / code > is < code > " DEBUG" < / code > , it also returns details about the PM2 processes in JSON format.
For instance:< / p >
< pre class = "chroma" > < span class = "p" > [< / span >
< span class = "p" > {< / span >
< span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "s2" > " google-chrome-stable" < / span > < span class = "p" > ,< / span >
< span class = "nt" > " pm2_env" < / span > < span class = "p" > :< / span > < span class = "p" > {< / span >
< span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "s2" > " online" < / span >
< span class = "p" > },< / span >
< span class = "nt" > " monit" < / span > < span class = "p" > :< / span > < span class = "p" > {< / span >
< span class = "nt" > " memory" < / span > < span class = "p" > :< / span > < span class = "mi" > 73826304< / span > < span class = "p" > ,< / span >
< span class = "nt" > " cpu" < / span > < span class = "p" > :< / span > < span class = "mi" > 0< / span >
< span class = "p" > }< / span >
< span class = "p" > },< / span >
< span class = "p" > {< / span >
< span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "s2" > " unoconv" < / span > < span class = "p" > ,< / span >
< span class = "nt" > " pm2_env" < / span > < span class = "p" > :< / span > < span class = "p" > {< / span >
< span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "s2" > " online" < / span >
< span class = "p" > },< / span >
< span class = "nt" > " monit" < / span > < span class = "p" > :< / span > < span class = "p" > {< / span >
< span class = "nt" > " memory" < / span > < span class = "p" > :< / span > < span class = "mi" > 70914048< / span > < span class = "p" > ,< / span >
< span class = "nt" > " cpu" < / span > < span class = "p" > :< / span > < span class = "mi" > 0< / span >
< span class = "p" > }< / span >
< span class = "p" > }< / span >
< span class = "p" > ]< / span >
< / pre >
< / div >
< div class = "Page" id = "fonts" >