Generate PDFs with Ruby

Complete Ruby code examples for the PixDoc API

Install

Terminal
# Uses Ruby's built-in net/http library

Generate a PDF

Send HTML to the /api/v1/pdf endpoint and save the binary response.

Ruby
require "net/http"
require "json"
require "uri"

uri = URI("https://pixdoc.dev/api/v1/pdf")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"
request["Content-Type"] = "application/json"
request.body = { html: "<h1>Hello World</h1>" }.to_json

response = http.request(request)
File.write("output.pdf", response.body)

Take a Screenshot

The /api/v1/screenshot endpoint returns a PNG image.

Ruby
require "net/http"
require "json"
require "uri"

uri = URI("https://pixdoc.dev/api/v1/screenshot")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"
request["Content-Type"] = "application/json"
request.body = { html: "<h1>Hello World</h1>" }.to_json

response = http.request(request)
File.write("screenshot.png", response.body)

Use a Template

Pass a template_id and variables instead of raw HTML.

Ruby
require "net/http"
require "json"
require "uri"

uri = URI("https://pixdoc.dev/api/v1/pdf")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"
request["Content-Type"] = "application/json"
request.body = {
  template_id: "invoice",
  variables: {
    company: "Acme Corp",
    total: "$1,250.00"
  }
}.to_json

response = http.request(request)
File.write("invoice.pdf", response.body)

Next Steps