Stampa etichette
Guida alla generazione, decodifica e stampa delle etichette di spedizione DPD.
Etichette nella risposta API
Una creazione di spedizione riuscita restituisce ogni etichetta come stringa PDF codificato in Base64 nel campo success[].label.
{
"success": [
{
"id": 1,
"parcelNumber": "05305000123456",
"label": "JVBERi0xLjQKJeLjz9MK..."
}
]
}
Decodificare e salvare l'etichetta
Shell:
echo "JVBERi0xLjQK..." | base64 --decode > label.pdf
JavaScript (browser):
function downloadLabel(base64Label, parcelNumber) {
const bytes = atob(base64Label);
const array = new Uint8Array(bytes.length);
for (let i = 0; i < bytes.length; i++) array[i] = bytes.charCodeAt(i);
const blob = new Blob([array], { type: 'application/pdf' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `label-${parcelNumber}.pdf`;
a.click();
URL.revokeObjectURL(url);
}
Java:
byte[] pdfBytes = Base64.getDecoder().decode(labelBase64);
Files.write(Path.of("label-" + parcelNumber + ".pdf"), pdfBytes);
Scegliere il formato etichetta corretto
Impostare printOptions.paperSize nella richiesta di spedizione:
| Formato | Valore | Caso d'uso |
|---|---|---|
| A4 | "A4" | Stampanti da ufficio standard. Fino a 4 etichette per foglio — controllare la posizione con startPosition (UPPER_LEFT, UPPER_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT) |
| Termico / A6 | "A6" | Stampanti per etichette termiche dirette (Zebra, Citizen, ecc.) |
"printOptions": {
"paperSize": "A6"
}
Più etichette su un unico foglio A4
Quando si stampano più spedizioni, raggrupparle su fogli A4 per risparmiare carta:
[
{ ..., "printOptions": { "paperSize": "A4", "startPosition": "UPPER_LEFT" } },
{ ..., "printOptions": { "paperSize": "A4", "startPosition": "UPPER_RIGHT" } },
{ ..., "printOptions": { "paperSize": "A4", "startPosition": "BOTTOM_LEFT" } },
{ ..., "printOptions": { "paperSize": "A4", "startPosition": "BOTTOM_RIGHT" } }
]
Etichetta vuota o danneggiata
Causa 1: Errore di decodifica Base64 — spazi o interruzioni di riga superflui nella stringa.
Soluzione: Rimuovere tutti gli spazi prima della decodifica:
const cleanBase64 = base64String.replace(/\s+/g, '');
Causa 2: Compatibilità del visualizzatore PDF.
Soluzione: Provare ad aprire il PDF in un altro visualizzatore. Le etichette sono file PDF 1.4+ validi.
Causa 3: DPI della stampante termica non compatibile.
Soluzione: Configurare la stampante a 203 o 300 DPI (consultare il manuale della stampante). Il formato dell'etichetta è progettato per le stampanti termiche DPD standard.
Ancora problemi?
Fornire al supporto DPD quanto segue:
tracingIddalla risposta APIparcelNumberdell'etichetta interessata- Formato etichetta utilizzato (
A4/A6) - Modello della stampante e versione del driver