Generate QR codes in PDF format. Print-ready documents with embedded QR codes and full library support.
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
import qrcode
from io import BytesIO
# Generate QR code
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data('https://example.com')
qr.make()
# Convert to image
qr_img = qr.make_image(fill_color='black', back_color='white')
# Save to BytesIO
qr_buffer = BytesIO()
qr_img.save(qr_buffer, format='PNG')
qr_buffer.seek(0)
# Create PDF
c = canvas.Canvas('qrcode.pdf', pagesize=letter)
c.drawString(100, 750, 'QR Code Example')
c.drawImage(qr_buffer, 100, 500, width=200, height=200)
c.save()
print('PDF created: qrcode.pdf')
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
import qrcode
urls = [
'https://example.com/1',
'https://example.com/2',
'https://example.com/3',
]
c = canvas.Canvas('qrcodes.pdf', pagesize=A4)
y_position = 27 * cm
for idx, url in enumerate(urls, 1):
# Generate QR
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data(url)
qr.make()
qr_img = qr.make_image()
# Save temporarily
temp_file = f'temp_qr_{idx}.png'
qr_img.save(temp_file)
# Add to PDF
c.drawString(1 * cm, y_position, f'QR {idx}: {url}')
c.drawImage(temp_file, 8 * cm, y_position - 3 * cm, width=3 * cm, height=3 * cm)
y_position -= 5 * cm
if y_position < 2 * cm:
c.showPage()
y_position = 27 * cm
c.save()
print('Multi-QR PDF created: qrcodes.pdf')
require_once('includes/tcpdf_config.php');
require_once('TCPDF/tcpdf.php');
require_once('vendor/autoload.php');
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
$qrCode = new QrCode('https://example.com');
$writer = new PngWriter();
$result = $writer->write($qrCode);
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, 'QR Code Document', 0, 1);
// Add QR image to PDF
$pdf->Image($result->getPath(), 50, 50, 50, 50);
$pdf->Output('qrcode.pdf', 'D');
const { PDFDocument } = require('pdf-lib');
const QRCode = require('qrcode');
const fs = require('fs');
async function createPDFWithQR() {
const pdfDoc = await PDFDocument.create();
const page = pdfDoc.addPage([500, 500]);
// Generate QR
const qrDataUrl = await QRCode.toDataURL('https://example.com');
// Embed image
const image = await pdfDoc.embedPng(qrDataUrl);
page.drawImage(image, {
x: 150,
y: 200,
width: 200,
height: 200,
});
// Add text
page.drawText('Scan this QR code', {
x: 150,
y: 150,
size: 16,
});
// Save PDF
const pdfBytes = await pdfDoc.save();
fs.writeFileSync('qrcode.pdf', pdfBytes);
console.log('PDF created!');
}
createPDFWithQR();