New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hexapdf-extras

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hexapdf-extras

  • 1.2.3
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

== HexaPDF Extras

This library contains additional functionality that is not provided by the main {HexaPDF}[https://hexapdf.gettalong.org] library.

To use it, just require 'hexapdf-extras' and it will update the HexaPDF configuration settings to make the various extensions available.

Note that you need to install the dependencies of the features you use yourself as they are not listed in the gem file!

=== QR code Generator

This extension plugs into the graphic objects and boxes system of HexaPDF and allows one to easily create a fully-scalable QR code:

require 'hexapdf' require 'hexapdf-extras'

doc = HexaPDF::Document.new canvas = doc.pages.add.canvas canvas.draw(:qrcode, at: [100, 100], size: 200, data: "https://hexapdf.gettalong.org") doc.write('qrcode.pdf')

Underneath the +rqrcode_core+ library is used for actually generating the QR code. This means you need to install that library for this extension to work.

The +data+ argument can be any data that +rqrcode_core+ understands. The other options understood by +rqrcode_core+ are also supported.

See {HexaPDF::Extras::GraphicObject::QRCode}[https://hexapdf-extras.gettalong.org/api/HexaPDF/Extras/GraphicObject/QRCode.html] and {HexaPDF::Extras::Layout::QRCodeBox}[https://hexapdf-extras.gettalong.org/api/HexaPDF/Extras/Layout/QRCodeBox.html] for details.

Note: There was a {bug in poppler}[https://gitlab.freedesktop.org/poppler/poppler/-/issues/1281] (already fixed) which leads to invalid rendering in Okular (as of 2022-08-06).

=== Barcode Generator

This extensions provides access to generating nearly any kind of barcode. It taps into the graphic objects and boxes system of HexaPDF to easily allow creating barcodes:

require 'hexapdf' require 'hexapdf-extras'

doc = HexaPDF::Document.new canvas = doc.pages.add.canvas canvas.draw(:barcode, at: [100, 100], width: 300, symbology: :code128, value: "Hello HexaPDF!") doc.write('zint.pdf')

Underneath the +ruby-zint+ library is used which relies on the libzint library via FFI. This means that you need to install the +ruby-zint+ library for this extension to work.

See {HexaPDF::Extras::GraphicObject::Zint}[https://hexapdf-extras.gettalong.org/api/HexaPDF/Extras/GraphicObject/Zint.html] and {HexaPDF::Extras::Layout::ZintBox}[https://hexapdf-extras.gettalong.org/api/HexaPDF/Extras/Layout/ZintBox.html] for details.

=== Swiss QR-bill generator

This extension provides a box class for the document layouting facilities of HexaPDF to easily create a {Swiss QR-bill}[https://www.six-group.com/en/products-services/banking-services/payment-standardization/standards/qr-bill.html]:

HexaPDF::Composer.create("sample-qr-bill.pdf", margin: 0) do |composer| data = { lang: :de, creditor: { iban: "CH44 3199 9123 0008 8901 2", name: "Max Muster & Söhne", address_line1: "Musterstrasse", address_line2: "123", postal_code: "8000", town: "Seldwyla", country: "CH", }, debtor: { address_type: :combined, name: "Simon Muster", address_line1: "Musterstrasse 1", address_line2: "8000 Seldwyla", country: "CH" }, amount: 2500.25, currency: 'CHF', } composer.swiss_qr_bill(data: data, style: {valign: :bottom}) end

See {HexaPDF::Extras::Layout::SwissQRBill}[https://hexapdf-extras.gettalong.org/api/HexaPDF/Extras/Layout/SwissQRBill.html] for details.

FAQs

Package last updated on 01 Jan 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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc