1 głos

🚀 Natywne kody EAN na PDF – automatyzacja magazynu i bezpieczny KSeF (gotowy kod CSS) sugestia Nowe

Sugeruję dodanie natywnej opcji generowania kodów EAN bezpośrednio na dokumentach PDF (wraz z przełącznikiem w API).

Dlaczego to ważne?

Automatyzacja: Pozwala na błyskawiczne przyjęcia towaru i obsługę magazynową (skanowanie wydruków).

Bezpieczeństwo KSeF: Obecnie można to osiągnąć tylko przez "własne szablony", co generuje ryzyko niezgodności z KSeF. Natywna funkcja eliminuje ten problem.

API: Umożliwi generowanie gotowych etykiet/faktur dla zewnętrznych systemów bez konieczności renderowania ich w przeglądarce.

Implementacja: Funkcja jest bardzo łatwa do wdrożenia, ponieważ silnik PDF Fakturowni już to obsługuje. Przetestowałem rozwiązanie, które działa idealnie i jest zoptymalizowane pod czytniki kodów.

Poniżej gotowy, przetestowany snippet CSS, który wystarczy wdrożyć systemowo (rozwiązuje problemy z renderowaniem pasków, trzeba tylko dostosować marginesy i rozmiary):

@media print {
/* --- POPRAWIONY KOD EAN --- */

/* 1. Wymuszenie widoczności i kolorów */
.ean_code.hidden {
display: block !important;
}

* {
-webkit-print-color-adjust: exact !important;
print-color-adjust: exact !important;
color-adjust: exact !important;
}

/* 2. Zabezpieczenie kolumny nazwy */
td.name_col, td.text_left {
overflow: visible !important;
white-space: normal !important;
}

/* --- FIX: OPTYMALIZACJA EAN --- */

/* KONTENER */
.ean_code {
display: inline-block !important;
background-color: transparent !important; /* Zmienione na transp, żeby nie robić tła */
text-align: left !important;
float: left;

zoom: 0.6; /* Lekka korekta: 0.5 bywa czasem za małe dla czytników starszego typu, 0.6 jest bezpieczniejsze */

margin-top: 5px;
width: auto !important;
max-width: none !important;
transform-origin: left top;
}

/* TABELA - KLUCZOWA ZMIANA: FIXED LAYOUT */
.ean_code table.barby-barcode {
border-collapse: collapse !important;
border-spacing: 0 !important;

/* To zapobiega rozciąganiu tabeli przez silnik PDF */
table-layout: fixed !important;

width: auto !important;
height: 35px !important; /* Nieco wyższy, po zoomie będzie ok */
border: 0 !important;
}

/* KOMÓRKI - BAZA */
.ean_code table.barby-barcode td.barby-cell {
padding: 0 !important;
margin: 0 !important;
border: 0 !important; /* Resetujemy border bazowy */
height: 35px !important;

/* FIX: Ustawiamy szerokość na 0 lub minimalną,
aby szerokość wynikała TYLKO z ramki (border) */
width: 0.1pt !important;
min-width: 0 !important;
}

/* CZARNE PASKI - LOGIKA RAMKI */
.ean_code table.barby-barcode td.barby-cell.on {
/* Używamy TYLKO ramki, bez tła, żeby uniknąć "rozlewania" koloru */
background-color: transparent !important;

/* Zmniejszone z 1.5pt na 1.2pt dla lepszej precyzji */
border-left: 1.2pt solid #000000 !important;

visibility: visible !important;
}

/* BIAŁE PASKI */
.ean_code table.barby-barcode td.barby-cell.off {
background-color: transparent !important;
/* Biała ramka musi mieć IDENTYCZNĄ szerokość co czarna, aby zachować proporcje kodu EAN */
border-left: 1.2pt solid #FFFFFF !important;
}

.ean_code table.barby-barcode:empty { display: none; }
}

anonim 2026-01-16 11:03
Kto głosował: + 1 anonim

Dodaj komentarz