@@ -3,8 +3,19 @@
< meta http-equiv = "x-ua-compatible" content = "ie=edge" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > Gotenberg · A Docker-powered stateless API for converting HTML, Markdown and Office documents to PDF.< / title >
< link rel = "apple-touch-icon-precomposed" sizes = "57x57" href = "theme/gotenberg/img/apple-touch-icon-57x57.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "114x114" href = "theme/gotenberg/img/apple-touch-icon-114x114.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "72x72" href = "theme/gotenberg/img/apple-touch-icon-72x72.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "144x144" href = "theme/gotenberg/img/apple-touch-icon-144x144.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "60x60" href = "theme/gotenberg/img/apple-touch-icon-60x60.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "120x120" href = "theme/gotenberg/img/apple-touch-icon-120x120.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "76x76" href = "theme/gotenberg/img/apple-touch-icon-76x76.png" / >
< link rel = "apple-touch-icon-precomposed" sizes = "152x152" href = "theme/gotenberg/img/apple-touch-icon-152x152.png" / >
< link rel = "icon" type = "image/png" href = "theme/gotenberg/img/favicon-196x196.png" sizes = "196x196" / >
< link rel = "icon" type = "image/png" href = "theme/gotenberg/img/favicon-96x96.png" sizes = "96x96" / >
< link rel = "icon" type = "image/png" href = "theme/gotenberg/img/favicon-32x32.png" sizes = "32x32" / >
< link rel = "icon" type = "image/png" href = "theme/gotenberg/img/favicon-16x16.png" sizes = "16x16" / >
< link rel = "icon" type = "image/png" href = "theme/gotenberg/img/favicon-16x16.png" sizes = "16x16" / >
< link rel = "icon" type = "image/png" href = "theme/gotenberg/img/favicon-128.png" sizes = "128x128" / >
< link rel = "stylesheet" href = "theme/gotenberg/css/index.css" / >
< / head >
< body >
@@ -12,7 +23,7 @@
< div class = "Container" >
< div class = "Header" >
< div class = "Title center" >
< img src = "https://user-images.githubusercontent.com/8983173/49701110-4c8b928 0-fbe 8-11e8-895c-a4b9c7d2515b .png" alt = "Gotenberg logo" width = "250" height = "250" / >
< img src = "https://user-images.githubusercontent.com/8983173/50009948-84b01e0 0-f fb8-11e8-850b-fc240382c626 .png" alt = "Gotenberg logo" width = "250" height = "250" / >
< span class = "text" > Gotenberg< / span >
< span class = "subtext" > A Docker-powered stateless API for converting HTML, Markdown and Office documents to PDF.< / span >
< / div >
@@ -34,6 +45,10 @@
< a href = "#html" > HTML< / a >
< / div >
< div class = "item" >
< a href = "#url" > URL< / a >
< / div >
< div class = "item" >
< a href = "#markdown" > Markdown< / a >
< / div >
@@ -54,6 +69,14 @@
< a href = "#scalability" > Scalability< / a >
< / div >
< div class = "item" >
< a href = "#liveness" > Liveness< / a >
< / div >
< div class = "item" >
< a href = "#fonts" > Fonts< / a >
< / div >
< div class = "item" >
< a href = "#links" > Links< / a >
< / div >
@@ -88,7 +111,7 @@
< p > You may start it with:< / p >
< pre class = "chroma" > $ docker run --rm -p < span class = "m" > 3000< / span > :3000 thecodingmachine/gotenberg:3
< pre class = "chroma" > $ docker run --rm -p < span class = "m" > 3000< / span > :3000 thecodingmachine/gotenberg:4
< / pre >
< blockquote >
@@ -104,8 +127,8 @@
< / 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" > 3 < / span > < span class = "w" >
< / span > < span class = "w" > < / span > < / pre >
< / span > < span class = "w" > < / span > image< span class = "p" > :< / span > < span class = "w" > < / span > thecodingmachine/gotenberg< span class = "p" > :< / span > < span class = "m" > 4 < / span > < span class = "w" >
< / span > < / pre >
< blockquote >
< p > The API will be available under < code > gotenberg:3000< / code > in your Docker Compose network.< / p >
@@ -157,15 +180,15 @@ which will be converted to PDF.</p>
< p > For instance:< / p >
< pre class = "chroma" > < span class = "cp" > < !doctype html> < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > < / span > < span class = "p" > > < / span > My PDF< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > h1< / span > < span class = "p" > < / span > < span class = "p" > > < / span > Hello world!< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > > < / span > My PDF< span class = "p" > < /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span > Hello world!< span class = "p" > < /< / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.basic.c_url" href = "#html.basic.c_url" >
@@ -176,7 +199,7 @@ which will be converted to PDF.</p>
< / 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 > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.basic.go" href = "#html.basic.go" >
@@ -185,11 +208,11 @@ which will be converted to PDF.</p>
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > 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 = "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" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -197,16 +220,16 @@ 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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\HTMLRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
< / span > < span class = "x" > $request = new HTMLRequest($index);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath);
< / span > < span class = "x" > < / span > < / pre >
< 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);
$dirPath = " /foo" ;
$filename = $client-> store($request, $dirPath);
< / pre >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.header_and_footer" href = "#html.header_and_footer" >
< 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 >
@@ -217,21 +240,21 @@ Respectively, a file named <code>header.html</code> and <code>footer.html</code>
< p > Each of them < strong > has to be a complete HTML document< / strong > :< / p >
< pre class = "chroma" > < span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > style< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< pre class = "chroma" > < span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > style< / span > < span class = "p" > > < / span >
< span class = "nt" > body< / span > < span class = "p" > {< / span >
< span class = "k" > font-size< / span > < span class = "p" > :< / span > < span class = "mi" > 8< / span > < span class = "kt" > rem< / span > < span class = "p" > ;< / span >
< span class = "k" > margin< / span > < span class = "p" > :< / span > < span class = "mi" > 4< / span > < span class = "kt" > rem< / span > < span class = "kc" > auto< / span > < span class = "p" > ;< / span >
< span class = "p" > }< / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > style< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > p< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > span< / span > < span class = "na" > class< / span > < span class = "o" > =< / span > < span class = "s" > " pageNumber" < / span > < span class = "p" > < / span > < span class = "p" > > < < / span > < span class = "p" > /< / span > < span class = "nt" > span< / span > < span class = "p" > > < / span > of < span class = "p" > < < / span > < span class = "nt" > span< / span > < span class = "na" > class< / span > < span class = "o" > =< / span > < span class = "s" > " totalPages" < / span > < span class = "p" > < / span > < span class = "p" > > < < / span > < span class = "p" > /< / span > < span class = "nt" > span< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > p< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > style< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > p< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > span< / span > < span class = "na" > class< / span > < span class = "o" > =< / span > < span class = "s" > " pageNumber" < / span > < span class = "p" > > < /< / span > < span class = "nt" > span< / span > < span class = "p" > > < / span > of < span class = "p" > < < / span > < span class = "nt" > span< / span > < span class = "na" > class< / span > < span class = "o" > =< / span > < span class = "s" > " totalPages" < / span > < span class = "p" > > < /< / span > < span class = "nt" > span< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > p< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< / pre >
< p > The following classes allow you to inject printing values:< / p >
@@ -258,7 +281,7 @@ Also, <code>footer.html</code> CSS properties override the ones from <code>heade
< / 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" > files< / span > < span class = "o" > =< / span > @header.html < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @footer.html < span class = "se" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.header_and_footer.go" href = "#html.header_and_footer.go" >
@@ -267,13 +290,13 @@ Also, <code>footer.html</code> CSS properties override the ones from <code>heade
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > 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 = "nx " > SetHeader< / span > < span class = "p" > (< / span > < span class = "s" > " header.html" < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nx " > SetFooter< / span > < span class = "p" > (< / span > < span class = "s" > " footer.html" < / 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 " > SetHeader< / span > < span class = "p" > (< / span > < span class = "s" > " header.html" < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf " > SetFooter< / span > < span class = "p" > (< / span > < span class = "s" > " footer.html" < / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -281,20 +304,20 @@ 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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\HTMLRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
< / span > < span class = "x" > $header = DocumentFactory::makeFromPath(' header.html' , ' header.html' );
< / span > < span class = "x" > $footer = DocumentFactory::makeFromPath(' footer.html' , ' footer.html' );
< / span > < span class = "x" > $request = new HTMLRequest($index);
< / span > < span class = "x" > $request-> setHeader($header);
< / span > < span class = "x" > $request-> setFooter($footer);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath);
< / span > < span class = "x" > < / span > < / pre >
< 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' );
$header = DocumentFactory::makeFromPath(' header.html' , ' header.html' );
$footer = DocumentFactory::makeFromPath(' footer.html' , ' footer.html' );
$request = new HTMLRequest($index);
$request-> setHeader($header);
$request-> setFooter($footer);
$dirPath = " /foo" ;
$filename = $client-> store($request, $dirPath);
< / pre >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.assets" href = "#html.assets" >
< 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 >
@@ -308,38 +331,38 @@ are on the same level as the <code>index.html</code> file.</p>
< p > In others words, this will work:< / p >
< pre class = "chroma" > < span class = "cp" > < !doctype html> < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > < / span > < span class = "p" > > < / span > My PDF< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > h1< / span > < span class = "p" > < / span > < span class = "p" > > < / span > Hello world!< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > img< / span > < span class = "na" > src< / span > < span class = "o" > =< / span > < span class = "s" > " img.png" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > > < / span > My PDF< span class = "p" > < /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span > Hello world!< span class = "p" > < /< / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > img< / span > < span class = "na" > src< / span > < span class = "o" > =< / span > < span class = "s" > " img.png" < / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< / pre >
< p > But this won’ t:< / p >
< pre class = "chroma" > < span class = "cp" > < !doctype html> < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > < / span > < span class = "p" > > < / span > My PDF< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > h1< / span > < span class = "p" > < / span > < span class = "p" > > < / span > Hello world!< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > img< / span > < span class = "na" > src< / span > < span class = "o" > =< / span > < span class = "s" > " /foo/img.png" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > > < / span > My PDF< span class = "p" > < /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span > Hello world!< span class = "p" > < /< / span > < span class = "nt" > h1< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > img< / span > < span class = "na" > src< / span > < span class = "o" > =< / span > < span class = "s" > " /foo/img.png" < / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< / pre >
< p > You may also use < em > remote< / em > paths for Google fonts, images and so on.< / p >
< blockquote >
< p > If you want to install fonts directly in the Gotenberg Docker image,
see to the < a href = "#office. fonts" > fonts section< / a > .< / p >
see to the < a href = "#fonts" > fonts section< / a > .< / p >
< / blockquote >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.assets.c_url" href = "#html.assets.c_url" >
@@ -353,7 +376,7 @@ see to the <a href="#office.fonts">fonts section</a>.</p>
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @style.css < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @img.png < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @font.woff < span class = "se" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.assets.go" href = "#html.assets.go" >
@@ -362,16 +385,12 @@ see to the <a href="#office.fonts">fonts section</a>.</p>
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > 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 = "nx " > SetAssets< / span > < span class = "p" > ([] < / span > < span class = "kt" > string< / span > < span class = "p" > { < / span >
< span class = "s" > " font.woff" < / span > < span class = "p" > ,< / span >
< span class = "s" > " img.gif" < / span > < span class = "p" > ,< / span >
< span class = "s" > " style.css" < / span > < span class = "p" > ,< / 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 " > SetAssets< / span > < span class = "p" > (< / span > < span class = "s" > " font.woff" < / span > < span class = "p" > ,< / span > < span class = "s" > " img.gif" < / span > < span class = "p" > ,< / span > < span class = "s" > " style.css" < / span > < span class = "p" > ) < / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -379,22 +398,22 @@ see to the <a href="#office.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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\HTMLRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
< / span > < span class = "x" > $assets = [
< / span > < span class = "x" > DocumentFactory::makeFromPath(' style.css' , ' style.css' ),
< / span > < span class = "x" > DocumentFactory::makeFromPath(' img.png' , ' img.png' ),
< / span > < span class = "x" > DocumentFactory::makeFromPath(' font.woff' , ' font.woff' ),
< / span > < span class = "x" > ];
< / span > < span class = "x" > $request = new HTMLRequest($index);
< / span > < span class = "x" > $request-> setAssets($assets);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath );
< / span > < span class = "x" > < / span > < / pre >
< 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' );
$assets = [
DocumentFactory::makeFromPath(' style.css' , ' style.css' ),
DocumentFactory::makeFromPath(' img.png' , ' img.png' ),
DocumentFactory::makeFromPath(' font.woff' , ' font.woff' ),
];
$request = new HTMLRequest($index);
$request-> setAssets($assets);
$dest = " result.pdf " ;
$client-> store($request, $dest );
< / pre >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.paper_size_margins_orientation" href = "#html.paper_size_margins_orientation" >
< 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 >
@@ -424,7 +443,7 @@ Also, you have to set both <code>paperWidth</code> and <code>paperHeight</code>.
< / span > < span class = "se" > < / span > --form < span class = "nv" > marginLeft< / span > < span class = "o" > =< / span > < span class = "m" > 0< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > marginRight< / span > < span class = "o" > =< / span > < span class = "m" > 0< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > landscape< / span > < span class = "o" > =< / span > < span class = "nb" > true< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "html.paper_size_margins_orientation.go" href = "#html.paper_size_margins_orientation.go" >
@@ -433,14 +452,14 @@ Also, you have to set both <code>paperWidth</code> and <code>paperHeight</code>.
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > 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 = "nx " > SetPaperSize< / span > < span class = "p" > (< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > A4< / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nx " > SetMargins< / span > < span class = "p" > (< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > NoMargins< / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nx " > SetLandscape< / span > < span class = "p" > (< / span > < span class = "kc" > true< / 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 " > SetPaperSize< / span > < span class = "p" > (< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > A4< / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf " > SetMargins< / span > < span class = "p" > (< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > NoMargins< / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf " > SetLandscape< / span > < span class = "p" > (< / span > < span class = "kc" > true< / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -448,20 +467,86 @@ Also, you have to set both <code>paperWidth</code> and <code>paperHeight</code>.
< 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< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\HTMLRequest;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\Request;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
< / span > < span class = "x" > $request = new HTMLRequest($index);
< / span > < span class = "x" > $request-> setPaperSize(Request::A4);
< / span > < span class = "x" > $request-> setMargins(Request::NO_MARGINS);
< / span > < span class = "x" > $request-> setLandscape(true);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath );
< / span > < span class = "x" > < / span > < / pre >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\HTMLRequest;
use TheCodingMachine\Gotenberg\Request;
$client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
$index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
$request = new HTMLRequest($index);
$request-> setPaperSize(Request::A4);
$request-> setMargins(Request::NO_MARGINS);
$request-> setLandscape(true);
$dest = " result.pdf " ;
$client-> store($request, $dest );
< / pre >
< / div >
< div class = "Page" id = "url" >
< h1 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "url" href = "#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 > URL< / h1 >
< p > Gotenberg provides the endpoint < code > /convert/url< / code > for remote URL conversions.< / p >
< p > It accepts < code > POST< / code > requests with a < code > multipart/form-data< / code > Content-Type.< / p >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "url.basic" href = "#url.basic" >
< 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 > Basic< / h2 >
< p > This endpoint does not accept an < code > index.html< / code > file nor assets files but a form field
named < code > remoteURL< / code > instead. Otherwise, URL conversions work the same as HTML conversions.< / p >
< blockquote >
< p > < strong > Attention:< / strong > when converting a website to PDF, you should remove all margins.
If not, some of the content of the page might be hidden.< / p >
< / blockquote >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "url.basic.c_url" href = "#url.basic.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< / h3 >
< pre class = "chroma" > $ curl --request POST < span class = "se" > \
< / span > < span class = "se" > < / span > --url http://localhost:3000/convert/url < 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" > remoteURL< / span > < span class = "o" > =< / span > https://google.com
--form < span class = "nv" > marginTop< / span > < span class = "o" > =< / span > < span class = "m" > 0< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > marginBottom< / span > < span class = "o" > =< / span > < span class = "m" > 0< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > marginLeft< / span > < span class = "o" > =< / span > < span class = "m" > 0< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > marginRight< / span > < span class = "o" > =< / span > < span class = "m" > 0< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "url.basic.go" href = "#url.basic.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< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / 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 = "o" > :=< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nf" > NewURLRequest< / span > < span class = "p" > (< / span > < span class = "s" > " https://google.com" < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf" > SetMargins< / span > < span class = "p" > (< / span > < span class = "nx" > gotenberg< / span > < span class = "p" > .< / span > < span class = "nx" > NoMargins< / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf" > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "url.basic.php" href = "#url.basic.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< / h3 >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\URLRequest;
$client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
$request = new URLRequest(' https://google.com' );
$request-> setMargins(Request::NO_MARGINS);
$dest = " result.pdf" ;
$filename = $client-> store($request, $dest);
< / pre >
< / div >
@@ -485,15 +570,15 @@ in the file <code>index.html</code>. This function will convert a given markdown
< p > For instance:< / p >
< pre class = "chroma" > < span class = "cp" > < !doctype html> < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > < / span > < span class = "p" > > < / span > My PDF< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > html< / span > < span class = "na" > lang< / span > < span class = "o" > =< / span > < span class = "s" > " en" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > meta< / span > < span class = "na" > charset< / span > < span class = "o" > =< / span > < span class = "s" > " utf-8" < / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > title< / span > < span class = "p" > > < / span > My PDF< span class = "p" > < /< / span > < span class = "nt" > title< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > head< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
{{ toHTML .DirPath " file.md" }}
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < < / span > < span class = "p" > /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > body< / span > < span class = "p" > > < / span >
< span class = "p" > < /< / span > < span class = "nt" > html< / span > < span class = "p" > > < / span >
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "markdown.basic.c_url" href = "#markdown.basic.c_url" >
@@ -505,7 +590,7 @@ in the file <code>index.html</code>. This function will convert a given markdown
< / 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" > files< / span > < span class = "o" > =< / span > @file.md < span class = "se" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "markdown.basic.go" href = "#markdown.basic.go" >
@@ -514,11 +599,11 @@ in the file <code>index.html</code>. This function will convert a given markdown
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > NewMarkdownRequest< / span > < span class = "p" > (< / span > < span class = "s" > " index.html" < / span > < span class = "p" > ,< / span > < span class = "p" > []< / span > < span class = "kt" > string< / span > < span class = "p" > {< / span > < span class = " s" > " file.md" < / 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 " > NewMarkdownRequest< / span > < span class = "p" > (< / span > < span class = "s" > " index.html" < / span > < span class = "p" > ,< / span > < span class = "s" > " file.md" < / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -526,19 +611,19 @@ 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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\MarkdownRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
< / span > < span class = "x" > $markdowns = [
< / span > < span class = "x" > DocumentFactory::makeFromPath(' file.md' , ' file.md' ),
< / span > < span class = "x" > ];
< / span > < span class = "x" > $request = new MarkdownRequest($index, $markdowns);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath );
< / span > < span class = "x" > < / span > < / pre >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\MarkdownRequest;
$client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
$index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
$markdowns = [
DocumentFactory::makeFromPath(' file.md' , ' file.md' ),
];
$request = new MarkdownRequest($index, $markdowns);
$dest = " result.pdf " ;
$filename = $client-> store($request, $dest );
< / pre >
< / div >
@@ -587,7 +672,7 @@ See the <a href="#scalability">scalability section</a> to find how to mitigate t
< / 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 > @document.docx < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > files< / span > < span class = "o" > =< / span > @document2.docx < span class = "se" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.basic.go" href = "#office.basic.go" >
@@ -596,11 +681,11 @@ See the <a href="#scalability">scalability section</a> to find how to mitigate t
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > NewOfficeRequest< / span > < span class = "p" > ([]< / span > < span class = "kt" > string< / span > < span class = "p" > { < / span > < span class = "s" > " document.docx" < / span > < span class = "p" > ,< / span > < span class = "s" > " document2.docx" < / 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 " > NewOfficeRequest< / span > < span class = "p" > (< / span > < span class = "s" > " document.docx" < / span > < span class = "p" > ,< / span > < span class = "s" > " document2.docx" < / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -608,34 +693,29 @@ 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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\OfficeRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $files = [
< / span > < span class = "x" > DocumentFactory::makeFromPath(' document.docx' , ' document.docx' ),
< / span > < span class = "x" > DocumentFactory::makeFromPath(' document2.docx' , ' document2.docx' ),
< / span > < span class = "x" > ];
< / span > < span class = "x" > $request = new OfficeRequest($files);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath);
< / span > < span class = "x" > < / span > < / pre >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\OfficeRequest;
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.paper_size_and_orientation" href = "#office.p aper_size_and_orientation" >
$client = new Client(' http://localhost:3000' , new \Http\Ad apt er\Guzzle6\Client());
$files = [
DocumentFactory::makeFromPath(' document.docx' , ' document.docx' ),
DocumentFactory::makeFromPath(' document2.docx' , ' document2.docx' ),
];
$request = new OfficeRequest($files);
$dest = " result.pdf" ;
$filename = $client-> store($request, $dest);
< / pre >
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.orientation" href = "#office.orientation" >
< 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 > Paper size and o rientation< / h2 >
< / a > O rientation< / h2 >
< p > You may also customize the resulting PDF format.< / p >
< p > By default, it will be rendered with < code > A4< / code > size and < code > portrait< / code > orientation.< / p >
< p > By default, it will be rendered with < code > portrait< / code > orientation.< / p >
< blockquote >
< p > Paper size has to be provided in < code > inches< / code > .
Also, you have to set both < code > paperWidth< / code > and < code > paperHeight< / code > .< / p >
< / blockquote >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.paper_size_and_orientation.c_url" href = "#office.paper_size_and_orientation.c_url" >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.orientation.c_url" href = "#office.orientation.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< / h3 >
@@ -643,59 +723,42 @@ Also, you have to set both <code>paperWidth</code> and <code>paperHeight</code>.
< / span > < span class = "se" > < / span > --url http://localhost:3000/convert/office < 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 > @document.docx < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > paperWidth< / span > < span class = "o" > =< / span > < span class = "m" > 8< / span > .27 < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > paperHeight< / span > < span class = "o" > =< / span > < span class = "m" > 11< / span > .27 < span class = "se" > \
< / span > < span class = "se" > < / span > --form < span class = "nv" > landscape< / span > < span class = "o" > =< / span > < span class = "nb" > true< / span > < span class = "se" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.paper_size_and_ orientation.go" href = "#office.paper_size_and_ orientation.go" >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.orientation.go" href = "#office.orientation.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< / h3 >
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > NewOfficeRequest< / span > < span class = "p" > ([]< / span > < span class = "kt" > string< / span > < span class = "p" > { < / span > < span class = "s" > " document.docx" < / span > < span class = "p" > } )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nx " > SetPaperSize< / span > < span class = "p" > (< / span > < span class = "nx" > gotenberg < / span > < span class = "p" > . < / span > < span class = "nx " > A4 < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nx" > SetLandscape< / span > < span class = "p" > (< / span > < span class = "kc" > true< / 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 " > NewOfficeRequest< / span > < span class = "p" > (< / span > < span class = "s" > " document.docx" < / span > < span class = "p" > )< / span >
< span class = "nx" > req< / span > < span class = "p" > .< / span > < span class = "nf " > SetLandscape < / span > < span class = "p" > ( < / span > < span class = "kc " > true < / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.paper_size_and_ orientation.php" href = "#office.paper_size_and_ orientation.php" >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.orientation.php" href = "#office.orientation.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< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\OfficeRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $files = [
< / span > < span class = "x" > DocumentFactory::makeFromPath(' document.docx' , ' document.docx' ),
< / span > < span class = "x" > ];
< / span > < span class = "x" > $request = new OfficeRequest($files);
< / span > < span class = "x" > $request-> setPaperSize(Request::A4);
< / span > < span class = "x" > $request-> setLandscape(true);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath);
< / span > < span class = "x" > < / span > < / pre >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\OfficeRequest;
< h2 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "office.fonts" href = "#office.fonts" >
< 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 > Fonts< / h2 >
< p > By default, only < code > ttf-mscorefonts< / code > fonts are installed.< / p >
< p > If you wish to use more fonts, you will have to create your own image:< / p >
< pre class = "chroma" > < span class = "k" > FROM< / span > < span class = "s" > thecodingmachine/gotenberg:3< / span > < span class = "err" >
< / span > < span class = "err" >
< / span > < span class = "err" > < / span > < span class = "k" > RUN< / span > apt-get -y install yourfonts< span class = "err" >
< / span > < span class = "err" > < / span > < / pre >
$client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
$files = [
DocumentFactory::makeFromPath(' document.docx' , ' document.docx' ),
];
$request = new OfficeRequest($files);
$request-> setLandscape(true);
$dest = " result.pdf" ;
$filename = $client-> store($request, $dest);
< / pre >
< / div >
@@ -723,7 +786,7 @@ will merge them and return the resulting PDF file.</p>
< / 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" > \
< / span > < span class = "se" > < / span > > result.pdf
< / span > < span class = "se" > < / span > -o result.pdf
< / pre >
< h3 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "merge.basic.go" href = "#merge.basic.go" >
@@ -732,11 +795,11 @@ will merge them and return the resulting PDF file.</p>
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > NewMergeRequest< / span > < span class = "p" > ([]< / span > < span class = "kt" > string< / span > < span class = "p" > { < / span > < span class = "s" > " file.pdf" < / span > < span class = "p" > ,< / span > < span class = "s" > " file2.pdf" < / 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 " > NewMergeRequest< / span > < span class = "p" > (< / span > < span class = "s" > " file.pdf" < / span > < span class = "p" > ,< / span > < span class = "s" > " file2.pdf" < / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nx " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "nx" > c< / span > < span class = "p" > .< / span > < span class = "nf " > Store< / span > < span class = "p" > (< / span > < span class = "nx" > req< / span > < span class = "p" > ,< / span > < span class = "nx" > dest< / span > < span class = "p" > )< / span >
< span class = "p" > }< / span >
< / pre >
@@ -744,19 +807,19 @@ 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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\MergeRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $files = [
< / span > < span class = "x" > DocumentFactory::makeFromPath(' file.pdf' , ' file.pdf' ),
< / span > < span class = "x" > DocumentFactory::makeFromPath(' file2.pdf' , ' file2.pdf' ),
< / span > < span class = "x" > ];
< / span > < span class = "x" > $request = new MergeRequest($files);
< / span > < span class = "x" > $dirPath = " /foo" ;
< / span > < span class = "x" > $filename = $client-> store($request, $dirPath );
< / span > < span class = "x" > < / span > < / pre >
< pre class = "chroma" > use TheCodingMachine\Gotenberg\Client;
use TheCodingMachine\Gotenberg\DocumentFactory;
use TheCodingMachine\Gotenberg\MergeRequest;
$client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
$files = [
DocumentFactory::makeFromPath(' file.pdf' , ' file.pdf' ),
DocumentFactory::makeFromPath(' file2.pdf' , ' file2.pdf' ),
];
$request = new MergeRequest($files);
$dest = " result.pdf " ;
$filename = $client-> store($request, $dest );
< / pre >
< / div >
@@ -792,12 +855,12 @@ to given URL.</p>
< pre class = "chroma" > < span class = "kn" > import< / span > < span class = "s" > " github.com/thecodingmachine/gotenberg/pkg" < / span >
< span class = "kd" > func< / span > < span class = "nx " > main< / span > < span class = "p" > ()< / span > < span class = "p" > {< / 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 = "nx " > 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 = "nx " > SetWebhookURL< / 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 = "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 " > SetWebhookURL< / span > < span class = "p" > (< / span > < span class = "s" > " http://myapp.com/webhook/" < / span > < span class = "p" > )< / span >
< span class = "nx" > dest< / span > < span class = "o" > :=< / span > < span class = "s" > " result.pdf" < / 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 = "nx " > Post< / span > < span class = "p" > (< / span > < span class = "nx" > req< / 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 >
@@ -805,16 +868,16 @@ 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 > PHP< / h3 >
< pre class = "chroma" > < span class = "x" > use TheCodingMachine\Gotenberg\Client;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\DocumentFactory;
< / span > < span class = "x" > use TheCodingMachine\Gotenberg\HTMLRequest;
< / span > < span class = "x" >
< / span > < span class = "x" > $client = new Client(' http://localhost:3000' , new \Http\Adapter\Guzzle6\Client());
< / span > < span class = "x" > $index = DocumentFactory::makeFromPath(' index.html' , ' index.html' );
< / span > < span class = "x" > $request = new HTMLRequest($index);
< / span > < span class = "x" > $request-> setWebhookURL(' http://myapp.com/webhook/' );
< / span > < span class = "x" > $resp = $client-> post($request);
< / span > < span class = "x" > < / span > < / pre >
< 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/' );
$resp = $client-> post($request);
< / pre >
< / div >
@@ -833,8 +896,8 @@ to given URL.</p>
< / 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" > 3 < / span > < span class = "w" >
< / span > < span class = "w" > < / span > < / pre >
< / span > < span class = "w" > < / span > image< span class = "p" > :< / span > < span class = "w" > < / span > thecodingmachine/gotenberg< span class = "p" > :< / span > < span class = "m" > 4 < / span > < span class = "w" >
< / span > < / pre >
< p > You may now launch your services using:< / p >
@@ -846,6 +909,37 @@ redirect a request to a Gotenberg container according to the round-robin strateg
< / div >
< div class = "Page" id = "liveness" >
< h1 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "liveness" href = "#liveness" >
< 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 > Liveness< / h1 >
< p > Gotenberg provides the endpoint < code > /ping< / code > for checking the API availability with
a simple < code > GET< / code > request.< / p >
< p > This feature is especially useful for liveness/readiness probes in Kubernetes:< / p >
< ul >
< li > < a href = "https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes" > Pod lifecycle< / a > < / li >
< li > < a href = "https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/" > Configure Liveness and Readiness Probes< / a > < / li >
< / ul >
< / div >
< div class = "Page" id = "fonts" >
< h1 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "fonts" href = "#fonts" >
< 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 > Fonts< / h1 >
< p > By default, a handful of fonts are installed. Asian characters are also supported out of the box.< / p >
< p > If you wish to use more fonts, you will have to create your own image:< / p >
< pre class = "chroma" > < span class = "k" > FROM< / span > < span class = "s" > thecodingmachine/gotenberg:4< / span > < span class = "err" >
< / span > < span class = "err" >
< / span > < span class = "err" > < / span > < span class = "k" > RUN< / span > apt-get -y install yourfonts< span class = "err" >
< / span > < / pre >
< / div >
< div class = "Page" id = "links" >
< h1 class = "Heading" > < a class = "Anchor" aria-hidden = "true" id = "links" href = "#links" >
< 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 >