Generate QRcodes with R

Create static QR codes in R. The content of the QR code is exactly what the user defines. We don't add a redirect URL, making it impossible for us to track the usage of the QR code. This allows to generate fast, free to use and privacy friendly QR codes.


CRANstatus Project Status: Active – The project has reached a stable, usablestate and is being activelydeveloped. Lifecycle:stable GitHub Codecov GitHub code size inbytes GitHub reposize DOI

QRcode Generator for R A hexagon with the word qrcode and a qrcode linking to the DOI

A QR code is a two-dimensional barcode developed by the Denso Wave company.

The current implementation handles three modes: numeric, alphanumeric and byte. Kanji is currently not supported. Please contact the maintainer if you need it.

  • Numeric: only digits from 0 to 9
  • Alphanumeric: all numeric characters, upper case LETTERS, and the characters " " (space), "$", "%", "*", "+", "-", ".", "/" and ":"
  • Byte: All characters from the Latin 1 (ISO 8859-1) character set.

Main functions

The main qr_code() function returns an object of the qr_code class. This is a logical matrix with specific methods for printing and plotting. The print version uses UTF-8 drawing symbols and the result depend on the font used. For a better quality QR code it best to use plot() or generate_svg().

library(qrcode)
code <- qr_code("QR CODE")
print(code)
##               
##  ▗▄▄▄  ▗▗▄▄▄  
##  ▐▗▄▐ ▐▟▐▗▄▐  
##  ▐▐█▐▐▞▐▐▐█▐  
##  ▐▄▄▟▗▚▚▐▄▄▟  
##  ▗▖ ▄▖ ▖ ▗▖   
##  ▝▄▜▄▌▘▜▚▛▚█  
##  ▐▜█▚▀▐██▙▙▞  
##  ▗▄▄▄▐▄▞▖▗▟▄  
##  ▐▗▄▐▝▖▖▞▗▟▘  
##  ▐▐█▐ ▞█▛▄▐▄  
##  ▐▄▄▟▐▘▜▀▐▜▝  
##               
##               
## 
## use plot() for a better quality image
plot(code)
A QR code displaying the value 'QR CODE'
generate_svg(code, filename = "man/figures/qr.svg")
A QR code displaying the value ‘QR CODE’ A QR code displaying the value ‘QR CODE’

Installation

The qrcode package is available from CRAN, R universe and GitHub.

# install from CRAN
install.packages("qrcode")
# install from R universe
install.packages("qrcode", repos = "https://thierryo.r-universe.dev")
# install from GitHub use the remotes package
remotes::install_github("ThierryO/qrcode")

Legacy code

The legacy function qrcode_gen() had several known bugs. Because of these bugs, we re-implemented the code from scratch in version 0.1.4. We created new functions. The old functions are defunct since version 0.2.0. We removed them in version 0.2.2.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("qrcode")

0.3.0 by Thierry Onkelinx, 2 years ago


https://thierryo.github.io/qrcode/, https://github.com/ThierryO/qrcode, https://doi.org/10.5281/zenodo.5040088


Report a bug at https://github.com/ThierryO/qrcode/issues


Browse source code at https://github.com/cran/qrcode


Authors: Thierry Onkelinx [aut, cre] (Author of the reimplemented functions , , Victor Teh [aut] (Original author)


Documentation:   PDF Manual  


GPL-3 license


Imports assertthat, stats, utils

Suggests httr, jpeg, knitr, opencv, png, rsvg, testthat


Imported by gofigR, huito.

Depended on by baRcodeR.

Suggested by opencv, serocalculator.


See at CRAN