PDF to HTML Go Examples
These examples demonstrate common PDF to HTML API workflows in Go.
Basic examples
PDF file to HTML file
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Run the conversion and save the result to a file. err := client.ConvertFileToFile("/path/to/logo.pdf", "logo.html") // Check for the conversion error. handleError(err) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
PDF file to in-memory HTML
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Run the conversion and store the result in the `html` variable. html, err := client.ConvertFile("/path/to/logo.pdf") // Check for the conversion error. handleError(err) // at this point the "html" variable contains HTML raw data and // can be sent in an HTTP response, saved to a file, etc. } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
PDF file to HTML stream
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Create an output stream for the conversion result outputStream, err := os.Create("logo.html") // Check for a file creation error. handleError(err) // Close the output stream. defer outputStream.Close() // run the conversion and write the result to the output stream. err = client.ConvertFileToStream("/path/to/logo.pdf", outputStream) // Check for the conversion error. handleError(err) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
PDF url to HTML file
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Run the conversion and save the result to a file. err := client.ConvertUrlToFile("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf", "invoice.html") // Check for the conversion error. handleError(err) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
PDF url to in-memory HTML
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Run the conversion and store the result in the `html` variable. html, err := client.ConvertUrl("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf") // Check for the conversion error. handleError(err) // at this point the "html" variable contains HTML raw data and // can be sent in an HTTP response, saved to a file, etc. } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
PDF url to HTML stream
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Create an output stream for the conversion result outputStream, err := os.Create("invoice.html") // Check for a file creation error. handleError(err) // Close the output stream. defer outputStream.Close() // run the conversion and write the result to the output stream. err = client.ConvertUrlToStream("https://pdfcrowd.com/static/pdf/apisamples/invoice.pdf", outputStream) // Check for the conversion error. handleError(err) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
In-memory PDF to HTML file
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" "io/ioutil" ) func readFile(fileName string) []byte { content, err := ioutil.ReadFile(fileName) handleError(err) return content } func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Run the conversion and save the result to a file. err := client.ConvertRawDataToFile(readFile("/path/to/hello_world.pdf"), "logo.html") // Check for the conversion error. handleError(err) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
In-memory PDF to in-memory HTML
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" "io/ioutil" ) func readFile(fileName string) []byte { content, err := ioutil.ReadFile(fileName) handleError(err) return content } func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Run the conversion and store the result in the `html` variable. html, err := client.ConvertRawData(readFile("/path/to/hello_world.pdf")) // Check for the conversion error. handleError(err) // at this point the "html" variable contains HTML raw data and // can be sent in an HTTP response, saved to a file, etc. } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
In-memory PDF to HTML stream
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" "io/ioutil" ) func readFile(fileName string) []byte { content, err := ioutil.ReadFile(fileName) handleError(err) return content } func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Create an output stream for the conversion result outputStream, err := os.Create("logo.html") // Check for a file creation error. handleError(err) // Close the output stream. defer outputStream.Close() // run the conversion and write the result to the output stream. err = client.ConvertRawDataToStream(readFile("/path/to/hello_world.pdf"), outputStream) // Check for the conversion error. handleError(err) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }
Get info about the current conversion
package main import ( "os" "fmt" "github.com/pdfcrowd/pdfcrowd-go" ) func main() { // Create an API client instance. client := pdfcrowd.NewPdfToHtmlClient("demo", "demo") // Configure the conversion. client.SetDebugLog(true) // Run the conversion and save the result to a file. err := client.ConvertFileToFile("/path/to/logo.pdf", "logo.html") // Check for the conversion error. handleError(err) // print URL pointing to the debug log for this request. fmt.Println("Debug log url:", client.GetDebugLogUrl()) // print number of conversion credits remaining in your account. fmt.Println("Remaining credit count:", client.GetRemainingCreditCount()) // print number of credits consumed for this conversion. fmt.Println("Consumed credit count:", client.GetConsumedCreditCount()) // print unique identifier assigned to this conversion job. fmt.Println("Job id:", client.GetJobId()) // print total number of pages in the output document. fmt.Println("Page count:", client.GetPageCount()) // print size of the output data in bytes. fmt.Println("Output size:", client.GetOutputSize()) } func handleError(err error) { if err != nil { why, ok := err.(pdfcrowd.Error) if ok { os.Stderr.WriteString(fmt.Sprintf("PDFCrowd Error: %s\n", why)) } else { os.Stderr.WriteString(fmt.Sprintf("Generic Error: %s\n", err)) } panic(err.Error()) } }