lib/PDF.rb in Dhalang-0.3.1 vs lib/PDF.rb in Dhalang-0.4.0
- old
+ new
@@ -4,44 +4,47 @@
PUPPETEER_SCRIPT_PATH = File.expand_path('../js/pdf-generator.js', __FILE__).freeze
private_constant :PUPPETEER_SCRIPT_PATH
# Captures the full webpage under the given url as PDF.
#
- # @param [String] url The url to get as PDF.
+ # @param [String] url The url to get as PDF.
+ # @param [Hash] options User configurable options.
#
# @return [String] The PDF that was created as binary.
- def self.get_from_url(url)
+ def self.get_from_url(url, options = {})
UrlUtils.validate(url)
- get(url)
+ get(url, options)
end
# Captures the full HTML as PDF.
# Useful when creating dynamic content, for example invoices.
#
- # @param [String] html The html to get as PDF.
+ # @param [String] html The html to get as PDF.
+ # @param [Hash] options User configurable options.
#
# @return [String] The PDF that was created as binary.
- def self.get_from_html(html)
+ def self.get_from_html(html, options = {})
html_file = FileUtils.create_temp_file("html", html)
url = "file://" + html_file.path
begin
- binary_pdf_content = get(url)
+ binary_pdf_content = get(url, options)
ensure
FileUtils.delete(html_file)
end
return binary_pdf_content
end
# Groups and executes the logic for creating a PDF of a webpage.
#
- # @param [String] url The url to create a PDF for.
+ # @param [String] url The url to create a PDF for.
+ # @param [Hash] options Set of options to use, passed by the user of this library.
#
# @return [String] The PDF that was created as binary.
- private_class_method def self.get(url)
+ private_class_method def self.get(url, options)
temp_file = FileUtils.create_temp_file("pdf")
begin
- Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, "pdf")
+ Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, "pdf", options)
binary_pdf_content = FileUtils.read_binary(temp_file.path)
ensure
FileUtils.delete(temp_file)
end
return binary_pdf_content