
Klien Go untuk Gotenberg – layanan konversi dokumen yang mendukung mesin manipulasi Chromium, LibreOffice, dan PDF.
go get github.com/nativebpm/gotenberg
Fitur
Mesin Konversi
Kromium
Konversi konten web ke PDF:
-
URL â†' PDF
-
File HTML â†' PDF
-
Penurunan harga â†' PDF
Mendukung:
-
Properti halaman khusus (ukuran, margin, orientasi)
-
Header & footer dengan nomor halaman
-
Strategi tunggu (penundaan, ekspresi JavaScript)
-
Cookie & header HTTP khusus
-
Jenis media yang ditiru (layar/cetak)
Kantor Libre
Konversi dokumen Office:
-
Word (.docx, .doc) â†' PDF
-
Excel (.xlsx, .xls) â†' PDF
-
PowerPoint (.pptx, .ppt) â†' PDF
-
Format OpenDocument â†' PDF
Mesin PDF
Operasi PDF:
-
Gabungkan beberapa PDF
-
Pisahkan halaman
-
Konversi gambar ke PDF
Mode Webhook
Konversi asinkron dengan callback:
-
Pengembalian
204 No Contentsegera -
Hasil unggahan ke URL webhook di latar belakang
-
Pisahkan URL panggilan balik kesalahan
-
Header HTTP khusus untuk panggilan balik
Lihat dokumen webhook Gotenberg untuk detailnya.
Contoh dengan Docker:
docker run \
-p 3000:3000 \
--name gotenberg \
--add-host="host.docker.internal:host-gateway" \
gotenberg/gotenberg:8
package main
import (
"context"
"io"
"log"
"net/http"
"os"
"time"
"github.com/nativebpm/gotenberg"
)
func main() {
client, err := gotenberg.NewClient(&http.Client{}, "http://localhost:3000")
if err != nil {
log.Fatal(err)
}
// Convert web page from URL to PDF
resp, err := client.
Chromium().
ConvertURL(context.Background(), "https://gotenberg.dev/docs/getting-started/introduction").
PaperSizeA4().
Margins(1, 1, 1, 1).
PrintBackground().
Timeout(30 * time.Second).
Send()
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
f, err := os.Create("converturl-chromium.pdf")
if err != nil {
log.Fatal(err)
}
defer f.Close()
_, err = io.Copy(f, resp.Body)
if err != nil {
log.Fatal(err)
}
log.Println("PDF generated from URL: converturl-chromium.pdf")
}
package main
import (
"context"
"io"
"log"
"net/http"
"os"
"strings"
"github.com/nativebpm/gotenberg"
)
func main() {
client, err := gotenberg.NewClient(&http.Client{}, "http://localhost:3000")
if err != nil {
log.Fatal(err)
}
html := strings.NewReader("<html><body><h1>Hello World!</h1></body></html>")
resp, err := client.Chromium().
ConvertHTML(context.Background(), html).
PaperSizeA6().
Margins(0.5, 0.5, 0.5, 0.5).
Send()
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
f, _ := os.Create("out.pdf")
io.Copy(f, resp.Body)
f.Close()
}
Contoh Lengkap
Github: https://github.com/nativebpm/gotenberg



