fix: improve PDF417 barcode generation and data handling
- Fix newline corruption: URL-encode hub3aText to prevent browser form submission from converting \n to \r\n - Align with HUB3A specs: Set error correction level to 4 and pixel size to 4x3 for better barcode scanning reliability - Fix barcode sizing: Add responsive width constraints (max-w-[35rem], sm:max-w-[25rem]) across all barcode displays - Update package dependencies: Remove peer dependency flags 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,17 +3,18 @@
|
||||
import { useState, useEffect, FC } from 'react';
|
||||
import { generateBarcode } from '../lib/pdf/pdf417';
|
||||
import { renderBarcode } from '../lib/pdf/renderBarcode';
|
||||
|
||||
export const Pdf417Barcode:FC<{hub3aText:string, className?: string, errorCorrectionLevel?: number}> = ({ hub3aText: hub3a_text, className, errorCorrectionLevel = 3}) => {
|
||||
|
||||
export const Pdf417Barcode:FC<{hub3aText:string, className?: string }> = ({ hub3aText: hub3a_text, className }) => {
|
||||
const [bitmapData, setBitmapData] = useState<string | undefined>(undefined);
|
||||
|
||||
console.log("Rendering Pdf417Barcode with hub3a_text:", hub3a_text);
|
||||
|
||||
useEffect(() => {
|
||||
const aspectRatio = 3;
|
||||
const errorCorrectionLevel = 4; // error correction 4 is common for HUB3A PDF417 barcodes
|
||||
|
||||
const barcodeMatrix = generateBarcode(hub3a_text, errorCorrectionLevel , aspectRatio);
|
||||
const bitmap = renderBarcode(barcodeMatrix, 1, 1);
|
||||
const barcodeMatrix = generateBarcode(hub3a_text, errorCorrectionLevel ?? 4 , aspectRatio);
|
||||
const bitmap = renderBarcode(barcodeMatrix, 4, 3); // 4:3 block size is common for HUB3A PDF417 barcodes
|
||||
setBitmapData(bitmap);
|
||||
}, [hub3a_text]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user