I reproduced most of the pdf_c_api.c example (I didn't have time to do the callbacks).
package main
import (
"fmt"
)
//#cgo CFLAGS: -IC:/wkhtmltopdf/include
//#cgo LDFLAGS: -lwkhtmltox -LC:/wkhtmltopdf/lib
// #include <wkhtmltox/pdf.h>
import "C"
func main() {
C.wkhtmltopdf_init(0)
gs := C.wkhtmltopdf_create_global_settings()
globalSettings := [][2]string{
{"out", "out.pdf"},
{"size.paperSize", "letter"},
}
for _, setting := range globalSettings {
C.wkhtmltopdf_set_global_setting(gs, C.CString(setting[0]), C.CString(setting[1]))
}
os := C.wkhtmltopdf_create_object_settings()
objectSettings := [][2]string{
{"footer.center", "[page] / [toPage]"},
}
for _, setting := range objectSettings {
C.wkhtmltopdf_set_object_setting(os, C.CString(setting[0]), C.CString(setting[1]))
}
c := C.wkhtmltopdf_create_converter(gs)
C.wkhtmltopdf_add_object(c, os, nil)
if C.wkhtmltopdf_convert(c) != 1 {
fmt.Println("http error code", C.wkhtmltopdf_http_error_code(c))
}
C.wkhtmltopdf_destroy_converter(c)
C.wkhtmltopdf_deinit()