Socket
Book a DemoInstallSign in
Socket

wkhtmltopdf_runner

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wkhtmltopdf_runner

0.7.0
bundlerRubygems
Version published
Maintainers
1
Created
Source

Wkhtmltopdf Runner

This gem is a wrapper for a popular wkhtmltopdf library to generate PDF files from HTML.

Installation

Add this line to your application's Gemfile and then run bundle install:

gem 'wkhtmltopdf_runner'

You also need to have installed wkhtmltopdf. Easy way to do that is to add binary files to your Gemfile.

gem 'wkhtmltopdf-binary' # or 'wkhtmltopdf-binary-edge'

If you have custom path for wkhtmltopdf please see Configuration

Usage

Write to File

Use in a block which has File argument that will be returned after PDF generation as a TempFile.

ActiveStorage in Rails

These examples show how to attach a file to a user with ActiveStorage::Attach. You can render PDF from HTML string:

string = '<h1>Hello user</h1>'

WkhtmltopdfRunner.pdf_from_string(string) do |file|
  user.document.attach(io: file, file_name: 'document.pdf')
end

You can render PDF from HTML file:

  File.open('index.html') do |html_file|
    WkhtmltopdfRunner.pdf_from_file(html_file) do |file|
      user.document.attach(io: file, file_name: 'document.pdf')
    end
  end

You can render PDF from URL:

  WkhtmltopdfRunner.pdf_from_url('https://github.com') do |file|
    user.document.attach(io: file, file_name: 'document.pdf')
  end

Sinatra

You can send the resultant file as a download.

  WkhtmltopdfRunner.pdf_from_url('https://github.com') do |file|
    send_file file, { filename: 'document.pdf' }
  end

Save to file

You can also just save it to a file.

WkhtmltopdfRunner.pdf_from_url('https://github.com') do |file|
  doc = File.open('document.pdf', 'w')
  doc.write(file.read)
  doc.close
end

Render to String

If you will not provide block, PDF string will be returned.

Warning: Be careful when using this method because all PDF content will be stored in Memory. Better to use block which will return file. See examples above.

pdf_string = WkhtmltopdfRunner.pdf_from_url('https://github.com')

Configuration

If you're using Rails, create file in config/initializers/wkhtmltopdf_runner.rb

WkhtmltopdfRunner.configure do |config|
  config.debug = true # Default: false
  config.logger = Logger.new('runner.log') # Default: STDOUT or Rails.logger in Rails
  config.binary_path = '/path/to/wkhtmltopdf' # Default: will search automatically in PATH or Gemfile
end

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/jpalumickas/wkhtmltopdf_runner. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

Code of Conduct

Everyone interacting in the WkhtmltopdfRunner project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

FAQs

Package last updated on 05 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.