Глубоко разочарован этим кодом для создания этикеток, я хочу иметь возможность генерировать штрих-коды при вводе номера партии для таких компаний, как Amazon, dpd, DHL....я пробовал, но сгенерированный штрих-код возвращается как недействительный штрих-код, когда это штрих-код на посылке в целях тестирования....Я получаю сообщение об ошибке, в котором говорится, что штрих-код должен содержать от 20 до 30 строк, я тестировал их с помощью сканеров компании, чтобы проверить, штрих-коды регистрируются, но сообщают, что штрих-код недействителен, но другие сайты, такие как COGNEX и TECH-IT, могут генерировать работающие этикетки,любая помощь в этом была бы невероятной
посмотрите мой код,
function generateBarcode() {
let barcodeValue = document.getElementById('barcodeValue').value;
document.getElementById('barcode').innerHTML = "";
let svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
let downloadButton = document.createElement("button");
downloadButton.innerHTML = "Download Barcode as PNG";
downloadButton.setAttribute("id", "downloadButton");
document.getElementById('barcode').appendChild(svgElement);
document.getElementById('barcode').appendChild(downloadButton);
// Generate the barcode
JsBarcode(svgElement, barcodeValue, {
format: "CODE128",
displayValue: true
});
// Add event listener to download the barcode as PNG
downloadButton.addEventListener("click", function () {
svgToPng(svgElement, barcodeValue);
});
}
function svgToPng(svgElement, barcodeValue) {
// Create an image from the SVG content
let svgData = new XMLSerializer().serializeToString(svgElement);
let svgBlob = new Blob([svgData], { type: 'image/svg+xml;charset=utf-8' });
let url = URL.createObjectURL(svgBlob);
let img = new Image();
img.onload = function () {
// Create a canvas element and draw the image onto it
let canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
let ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
// Convert the canvas to a PNG and trigger the download
let pngData = canvas.toDataURL("image/png");
let link = document.createElement('a');
link.href = pngData;
link.download = 'barcode_' + barcodeValue + '.png';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// Clean up the URL object
URL.revokeObjectURL(url);
};
img.src = url;
}
Глубоко разочарован этим кодом для создания этикеток, я хочу иметь возможность генерировать штрих-коды при вводе номера партии для таких компаний, как Amazon, dpd, DHL....я пробовал, но сгенерированный штрих-код возвращается как недействительный штрих-код, когда это штрих-код на посылке в целях тестирования....Я получаю сообщение об ошибке, в котором говорится, что штрих-код должен содержать от 20 до 30 строк, я тестировал их с помощью сканеров компании, чтобы проверить, штрих-коды регистрируются, но сообщают, что штрих-код недействителен, но другие сайты, такие как COGNEX и TECH-IT, могут генерировать работающие этикетки,[b]любая помощь в этом была бы невероятной посмотрите мой код,
[code]function generateBarcode() { let barcodeValue = document.getElementById('barcodeValue').value;
// Add event listener to download the barcode as PNG downloadButton.addEventListener("click", function () { svgToPng(svgElement, barcodeValue); }); }
function svgToPng(svgElement, barcodeValue) { // Create an image from the SVG content let svgData = new XMLSerializer().serializeToString(svgElement); let svgBlob = new Blob([svgData], { type: 'image/svg+xml;charset=utf-8' }); let url = URL.createObjectURL(svgBlob);
let img = new Image(); img.onload = function () { // Create a canvas element and draw the image onto it let canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; let ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0);
// Convert the canvas to a PNG and trigger the download let pngData = canvas.toDataURL("image/png"); let link = document.createElement('a'); link.href = pngData; link.download = 'barcode_' + barcodeValue + '.png';