Wicked Pdf
Webpacker
Our great sponsors
Wicked Pdf | Webpacker | |
---|---|---|
5 | 54 | |
3,395 | 5,318 | |
- | -0.1% | |
5.3 | 7.8 | |
12 days ago | 5 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Wicked Pdf
-
Creating PDFs in a Ruby on Rails application
You have a few options when trying to create a PDF in a Rails environment. Prawn and Wicked PDF have been around for quite a while. I have been using both gems and they work fine. However, they have a few limitations that can make it difficult to handle more complex PDFs. I recently discovered Grover, which can remediate some of this inflexibility in creating PDFs.
-
Generate PDF with gem wicked_pdf
# WickedPDF Global Configuration # # Use this to set up shared configuration options for your entire application. # Any of the configuration options shown here can also be applied to single # models by passing arguments to the `render :pdf` call. # # To learn more, check out the README: # # https://github.com/mileszs/wicked_pdf/blob/master/README.md WickedPdf.config ||= {} WickedPdf.config.merge!({ layout: "pdf.html.erb", orientation: "Landscape", lowquality: true, zoom: 1, dpi: 75 })
-
Converting HTML to PDF using Rails
A couple of popular gems to convert HTML to PDF in Rails are PDFKit and WickedPDF. They both use a command line utility called wkhtmltopdf under the hood; which uses WebKit to render a PDF from HTML.
- Gerando PDF com a gem wicked_pdf no Rails 6
-
20 months, 2K hours, 200K € lost. A story about resilience and sunk cost fallacy
Thanks for sharing - it takes a lot to share these sort of personal experiences. I've definitely been there, too.
Aside from all the good and valid comments about reducing scope and shipping an MVP, I'd like to raise another point which may be controversial (or even wrong), but still worth raising:
Would it have been different if you had used Rails? A few of the problems you mention (rich text editing, validation, and to some extend, pdf exports) are very easily solved in Rails. Take rich text editing: It's literally a couple minutes to use ActionText. Or validations / forms, there's really not much work to do. PDF exports are also not too hard via wicked_pdf [1] if you're okay with fixing some formatting quirks later on.
I've seen both worlds by writing tons of JS / React code myself, and at that time (2016-2018) those problems were almost an order of magnitude more time-costly to implement in SPAs. I remember react-router.. not great memories.
Of course, all the points reducing MVP scope still hold, yadda yadda, but.. if you could have had all those features (nearly) for free, would you be at another stage now? Who knows.
Webpacker
-
Asset Pipeline JS Migration
Using Webpacker in Rails provides several advantages over the traditional asset pipeline. First, Webpacker uses JavaScript modules, which allows for better code organization and improved code reusability. Second, it offers modern frontend build tools, such as Babel and PostCSS, for transforming and compiling assets. Third, it provides faster build times and faster runtime performance through code splitting and lazy loading. Fourth, it offers better integration with JavaScript frameworks such as React, Vue, and Angular. Overall, Webpacker offers a more flexible and modern asset management solution for Rails applications. And while Webpacker is being retired, this initiative is to consolidate our code accordingly before moving our bundler to another solution.
-
Thank you Webpacker, Goodbye Webpacker
This article is replace Webpacker with Simpacker and webpack.
-
Moving from BS4 to BS5 in Rails 6, having unexpected results
Took me 2 days to find this bug report: https://github.com/rails/webpacker/issues/3188 (thanks again tagliala)
-
Webpacker 6 development continues as shakacode/shakapacker
But it's there in the webpacker README now, if anyone hasn't seen it. https://github.com/rails/webpacker
- Webpacker Has Been Retired
- Webpacker Retired
-
Unable to build and deploy Rails 6.0.4.1 app on heroku - Throws gyp verb cli error
source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.7.3' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 6.0.3', '>= 6.0.3.7' gem 'mongoid', git: 'https://github.com/mongodb/mongoid.git' # Use Puma as the app server gem 'puma', '~> 4.1' # Use SCSS for stylesheets gem 'sass-rails', '>= 6' # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker gem 'webpacker', '~> 4.0' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.7' # Use Redis adapter to run Action Cable in production # gem 'redis', '~> 4.0' # Use Active Model has_secure_password # Use Active Storage variant # gem 'image_processing', '~> 1.2' gem 'axlsx' gem 'caxlsx_rails' #Bootstrap for UI gem 'bootstrap', '~> 5.1.0' gem 'bootstrap-timepicker-rails', '~> 0.1.3' gem 'bootstrap-select-rails', '~> 1.6', '>= 1.6.3' #JQuery Rails gem 'jquery-rails' gem 'rails_12factor', group: :production # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.2', require: false group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] end group :development do # Access an interactive console on exception pages or by calling 'console' anywhere in the code. gem 'web-console', '>= 3.3.0' gem 'listen', '~> 3.2' gem 'pry' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end group :test do # Adds support for Capybara system testing and selenium driver gem 'capybara', '>= 2.15' gem 'selenium-webdriver' # Easy installation and use of web drivers to run system tests with browsers gem 'webdrivers' gem 'cucumber-rails', require: false gem 'database_cleaner' end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] #HTTParty for RESTful API calls gem 'httparty' #Paperclip for storing files gem 'paperclip' gem "mongoid-paperclip", :require => "mongoid_paperclip" gem "letter_opener", :group => :development r
-
Live reloading with Ruby on Rails and esbuild
As you may have heard by now, Rails 7 comes out of the box with importmap-rails and the mighty Webpacker is no longer the default for new Rails applications.
-
10 Awesome Ruby Gems for Ruby on Rails Web Development
Webpacker
-
Modern web apps without JavaScript bundling or transpiling
i mean the webpacker gem is core rails though. unless you are saying that is not supported very well? https://github.com/rails/webpacker
What are some alternatives?
Pdfkit - A Ruby gem to transform HTML + CSS into PDFs using the command-line utility wkhtmltopdf
Prawn - Fast, Nimble PDF Writer for Ruby
Grover - A Ruby gem to transform HTML into PDFs, PNGs or JPEGs using Google Puppeteer/Chromium
Tailwind CSS - A utility-first CSS framework for rapid UI development.
esbuild - An extremely fast bundler for the web
Asset Sync - Synchronises Assets between Rails and S3
turbo-rails - Use Turbo in your Ruby on Rails app
CombinePDF - A Pure ruby library to merge PDF files, number pages and maybe more...
shakapacker - Use Webpack to manage app-like JavaScript modules in Rails
Sprockets
jsbundling-rails - Bundle and transpile JavaScript in Rails with esbuild, rollup.js, or Webpack.
webpack - A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.