Image to PDF Ruby Examples
These examples demonstrate common Image to PDF API workflows in Ruby.
Basic examples
PNG file to PDF file
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and save the result to a file. client.convertFileToFile("/path/to/logo.png", "logo.pdf") rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG file to in-memory PDF
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and store the result in the `pdf` variable. pdf = client.convertFile("/path/to/logo.png") # at this point the "pdf" variable contains PDF raw data and # can be sent in an HTTP response, saved to a file, etc. rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG file to PDF stream
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Create an output stream for the conversion result output_stream = open("logo.pdf", "wb") # run the conversion and write the result to the output stream. client.convertFileToStream("/path/to/logo.png", output_stream) # Close the output stream. output_stream.close() rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG url to PDF file
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and save the result to a file. client.convertUrlToFile("https://pdfcrowd.com/static/images/logo.png", "logo.pdf") rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG url to in-memory PDF
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and store the result in the `pdf` variable. pdf = client.convertUrl("https://pdfcrowd.com/static/images/logo.png") # at this point the "pdf" variable contains PDF raw data and # can be sent in an HTTP response, saved to a file, etc. rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
PNG url to PDF stream
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Create an output stream for the conversion result output_stream = open("logo.pdf", "wb") # run the conversion and write the result to the output stream. client.convertUrlToStream("https://pdfcrowd.com/static/images/logo.png", output_stream) # Close the output stream. output_stream.close() rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
In-memory PNG to PDF file
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and save the result to a file. client.convertRawDataToFile(open('/path/to/logo.png', 'rb').read(), "logo.pdf") rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
In-memory PNG to in-memory PDF
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and store the result in the `pdf` variable. pdf = client.convertRawData(open('/path/to/logo.png', 'rb').read()) # at this point the "pdf" variable contains PDF raw data and # can be sent in an HTTP response, saved to a file, etc. rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
In-memory PNG to PDF stream
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Create an output stream for the conversion result output_stream = open("logo.pdf", "wb") # run the conversion and write the result to the output stream. client.convertRawDataToStream(open('/path/to/logo.png', 'rb').read(), output_stream) # Close the output stream. output_stream.close() rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
Get info about the current conversion
require "pdfcrowd" begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Configure the conversion. client.setDebugLog(true) # Run the conversion and save the result to a file. client.convertFileToFile("/path/to/logo.png", "logo.pdf") # print URL pointing to the debug log for this request. puts "Debug log url: #{client.getDebugLogUrl()}" # print number of conversion credits remaining in your account. puts "Remaining credit count: #{client.getRemainingCreditCount()}" # print number of credits consumed for this conversion. puts "Consumed credit count: #{client.getConsumedCreditCount()}" # print unique identifier assigned to this conversion job. puts "Job id: #{client.getJobId()}" # print size of the output data in bytes. puts "Output size: #{client.getOutputSize()}" rescue Pdfcrowd::Error => why STDERR.puts "PDFCrowd Error: #{why}" raise end
Rails examples
PNG file to PDF in Rails
require "pdfcrowd" class DemoController < ApplicationController def convert # The recommended method is POST. # may be restricted by ":via => :post" in your routes.rb if ! request.post? return render text: "POST is allowed only", status: 400 end begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and store the result in the `pdf` variable. pdf = client.convertFile("/path/to/logo.png") # Send the result and set HTTP response headers. send_data pdf, :type => "application/pdf", :disposition => "attachment; filename*=UTF-8''#{ERB::Util.url_encode('logo.pdf')}" rescue Pdfcrowd::Error => why # Send the error in the HTTP response. render plain: why, status: why.getCode() end end end
PNG url to PDF in Rails
require "pdfcrowd" class DemoController < ApplicationController def convert # The recommended method is POST. # may be restricted by ":via => :post" in your routes.rb if ! request.post? return render text: "POST is allowed only", status: 400 end begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and store the result in the `pdf` variable. pdf = client.convertUrl("https://pdfcrowd.com/static/images/logo.png") # Send the result and set HTTP response headers. send_data pdf, :type => "application/pdf", :disposition => "attachment; filename*=UTF-8''#{ERB::Util.url_encode('logo.pdf')}" rescue Pdfcrowd::Error => why # Send the error in the HTTP response. render plain: why, status: why.getCode() end end end
In-memory PNG to PDF in Rails
require "pdfcrowd" class DemoController < ApplicationController def convert # The recommended method is POST. # may be restricted by ":via => :post" in your routes.rb if ! request.post? return render text: "POST is allowed only", status: 400 end begin # Create an API client instance. client = Pdfcrowd::ImageToPdfClient.new("demo", "demo") # Run the conversion and store the result in the `pdf` variable. pdf = client.convertRawData(open('/path/to/logo.png', 'rb').read()) # Send the result and set HTTP response headers. send_data pdf, :type => "application/pdf", :disposition => "attachment; filename*=UTF-8''#{ERB::Util.url_encode('logo.pdf')}" rescue Pdfcrowd::Error => why # Send the error in the HTTP response. render plain: why, status: why.getCode() end end end