In questo articolo, dimostrerò come generare codici a barre a livello di codice utilizzando C++. Imparerai anche come implementare uno scanner o un lettore di codici a barre all’interno delle tue applicazioni C++.
I codici a barre vengono utilizzati per rappresentare visivamente i dati in un formato leggibile dalla macchina. La suddetta tecnologia si è rivelata utile soprattutto nei sistemi di cassa automatizzati implementati nei negozi e nei supermercati. Quasi tutti i prodotti sul mercato oggigiorno contengono un codice a barre. Questa diffusa popolarità del codice a barre ha esteso i suoi casi d’uso in vari domini. Tenendo d’occhio l’importanza dei codici a barre, alcuni anni fa, Aspose ha lanciato il generatore di codici a barre e l’API di lettura per varie piattaforme. Questo articolo ha lo scopo di mostrare come implementare il generatore e il lettore di codici a barre all’interno delle applicazioni C++ per generare e leggere dinamicamente i codici a barre.
- Genera un codice a barre usando C++
- Genera codici a barre 2D (QR o altro) utilizzando C++
- Crea codici a barre con un aspetto personalizzato utilizzando C++
- Crea codici a barre con una didascalia usando C++
- Scansiona e leggi codici a barre usando C++
- Leggi più simbologie di codici a barre usando C++
Generatore di codici a barre C++ e API di lettura
Aspose.BarCode for C++ è un’API C++ ricca di funzionalità per la generazione e la lettura di una moltitudine di codici a barre 1D e 2D. Ti consente di generare, personalizzare ed esportare i codici a barre in immagini di alta qualità. Puoi scaricare i file della libreria dalla sezione Download. Il pacchetto scaricabile contiene anche un’applicazione C++ demo per te.
Di seguito è riportato l’elenco delle simbologie di codici a barre che è possibile generare utilizzando Aspose.BarCode per C++:
- Codice128
- Codice39 Norma
- Codice39 esteso
- Codice93 Standard
- Codice93 esteso
- Codice11
- Codabar
- BooklandEAN
- EAN13
- EAN8
- EAN128
- Interleaved2of5
- Standard2di5
- MSI
- Postnet
- Pianeta
- UPCA
- UPCE
- EAN14(SCC14)
- SSCC18
- ITF14
- Supplemento codice a barre
- Pdf417
- QR
- matrice di dati
- Matrice 2 di 5
- PZN (Pharma Zentral Nummer, codice a barre Pharmazentralnummer)
- Codice identificativo di Deutsche Post
- azteco
- Posta australiana
Genera un codice a barre usando C++
La generazione di un codice a barre utilizzando Aspose.BarCode può essere ottenuta entro un paio di righe di codice. Di seguito sono riportati i passaggi per eseguire questa operazione.
- Crea un oggetto della classe BarcodeGenerator.
- Inizializzare l’oggetto con il tipo di codifica del codice a barre e il relativo testo.
- Genera codice a barre usando il metodo BarcodeGenerator->Save(System::String).
L’esempio di codice seguente mostra come generare un codice a barre usando C++.
const System::String codeText = u"1234567";
const System::String fileName = u"code39_barcode.jpg";
// Crea generatore di codici a barre
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Genera codice a barre e salva come immagine
barcodeGenerator->Save(fileName);
Quello che segue è il codice a barre che abbiamo generato utilizzando il codice sopra.
Genera codici a barre 2D (QR o altro) utilizzando C++
Nell’esempio precedente, abbiamo creato un codice a barre unidimensionale. Creiamo ora un codice a barre bidimensionale come il codice QR. Di seguito sono riportati i passaggi per creare un codice a barre QR.
- Crea un oggetto della classe BarcodeGenerator.
- Inizializzare l’oggetto con il tipo EncodeTypes::QR e impostarne il testo.
- Crea l’immagine del codice a barre usando il metodo BarcodeGenerator->Save(System::String).
L’esempio di codice seguente mostra come generare un codice a barre QR usando C++.
const System::String codeText = u"1234567";
const System::String fileName = u"QR_Code.jpg";
// Crea generatore di codici a barre
System::SharedPtr<BarcodeGenerator> barcodeGenerator = System::MakeObject<BarcodeGenerator>(EncodeTypes::QR, codeText);
barcodeGenerator->get_Parameters()->set_Resolution(300);
// Genera codice a barre e salva come immagine
barcodeGenerator->Save(fileName);
Il seguente codice QR verrà generato utilizzando il codice sopra.
Genera codici a barre personalizzati utilizzando C++
Puoi anche personalizzare l’aspetto del codice a barre. Ad esempio, puoi impostare il colore di primo piano, il colore di sfondo, le dimensioni, lo stile del bordo e così via. Di seguito sono stati illustrati i passaggi per personalizzare i codici a barre utilizzando Aspose.BarCode per C++.
- Crea e inizializza l’oggetto della classe BarcodeGenerator.
- Accedi ai parametri del codice a barre utilizzando i metodi BarcodeGenerator->getParameters().
- Impostare i parametri desiderati.
- Genera il codice a barre e salvalo come immagine.
L’esempio di codice seguente mostra come generare un codice a barre personalizzato usando C++.
System::SharedPtr<BarcodeGenerator> barcodeGenerator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Aztec, System::String(u"1234567890"));
// impostare uno stile più ampio
tmp_0->get_Parameters()->get_Border()->set_DashStyle(Aspose::BarCode::BorderDashStyle::Solid);
// impostare la larghezza
tmp_0->get_Parameters()->get_Border()->get_Width()->set_Millimeters(1.0f);
// impostare la visibilità del confine
tmp_0->get_Parameters()->get_Border()->set_Visible(true);
// imposta il colore di sfondo
tmp_0->get_Parameters()->set_BackColor(System::Drawing::Color::get_Black());
// imposta il colore della barra del codice a barre
tmp_0->get_Parameters()->get_Barcode()->set_ForeColor(System::Drawing::Color::get_Orange());
// imposta il colore del bordo
tmp_0->get_Parameters()->get_Border()->set_Color(System::Drawing::Color::get_Black());
// imposta il colore del testo
tmp_0->get_Parameters()->get_Barcode()->get_CodeTextParameters()->set_Color(System::Drawing::Color::get_Orange());
// impostare la risoluzione dell'immagine
tmp_0->get_Parameters()->set_Resolution(400);
return tmp_0; }();
barcodeGenerator->Save(System::String(u"custom_barcode.jpg"));
Quello che segue è il codice a barre azteco personalizzato che abbiamo generato.
Genera codici a barre con una didascalia usando C++
I codici a barre possono anche contenere la didascalia sotto o sopra il codice a barre. È possibile impostare il testo della didascalia e la sua visibilità nell’immagine del codice a barre. L’esempio di codice seguente mostra come generare un codice a barre con le didascalie usando C++.
System::SharedPtr<BarcodeGenerator> generator = [&] { auto tmp_0 = System::MakeObject<BarcodeGenerator>(EncodeTypes::Code39Standard, System::String(u"1234567890"));
// imposta la didascalia sopra
tmp_0->get_Parameters()->get_CaptionAbove()->set_Text(u"Caption Above");
// impostare la visibilità
tmp_0->get_Parameters()->get_CaptionAbove()->set_Visible(true);
// imposta la didascalia di seguito
tmp_0->get_Parameters()->get_CaptionBelow()->set_Text(u"Caption Below");
// impostare la visibilità
tmp_0->get_Parameters()->get_CaptionBelow()->set_Visible(true);
// impostare la risoluzione
tmp_0->get_Parameters()->set_Resolution(300);
return tmp_0; }();
generator->Save(System::String(u"barcode_caption.jpg"));
Quello che segue è un codice a barre con le didascalie sopra e sotto.
Scansiona e leggi codici a barre usando C++
Vediamo ora come scansionare e leggere i codici a barre usando Aspose.BarCode per C++. Di seguito sono riportati i passaggi per eseguire questa funzione.
- Crea un’istanza della classe BarCodeReader.
- Inizializza l’istanza di BarCodeReader con il file immagine del codice a barre e la sua simbologia.
- Utilizzare il metodo BarCodeReader->Read() per recuperare il testo e il tipo del codice a barre.
L’esempio di codice seguente mostra come scansionare e leggere un codice a barre usando C++.
// Crea un'istanza della classe BarcodeGenerator
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"Code128.png", DecodeType::Code128);
while (reader->Read())
{
// Visualizza il testo del codice e il tipo di simbologia
System::Console::WriteLine(System::String(u"CodeText: ") + reader->GetCodeText());
System::Console::Write(System::String(u"Symbology Type: ") + reader->GetCodeType());
}
reader->Close();
Leggi codici a barre con più simbologie usando C++
Nella maggior parte dei casi, un’immagine contiene solo una singola simbologia del codice a barre. Tuttavia, in alcuni casi, l’immagine può contenere codici a barre di più simbologie contemporaneamente. In questi casi è possibile fornire un elenco delle simbologie di codici a barre da scansionare e leggere.
L’esempio di codice seguente mostra come eseguire la scansione di un’immagine con più simbologie di codici a barre usando C++.
// Imposta le simbologie dei codici a barre
System::ArrayPtr<System::SharedPtr<BaseDecodeType>> objArray = System::MakeArray<System::SharedPtr<Aspose::BarCode::BarCodeRecognition::BaseDecodeType>>({ DecodeType::Code39Standard, DecodeType::Pdf417 });
// Inizializza il BarCodeReader, chiama il metodo Read() in un ciclo e visualizza il testo del codice e il tipo di simbologia
System::SharedPtr<BarCodeReader> reader = System::MakeObject<BarCodeReader>(u"RecognizingMultipleSymbologies.png", objArray);
while (reader->Read())
{
System::Console::WriteLine(System::String(u"Codetext: ") + reader->GetCodeText());
System::Console::WriteLine(System::String(u"Symbology type: ") + reader->GetCodeType());
}
reader->Close();
Conclusione
In questo articolo hai imparato come generare codici a barre con diverse simbologie usando C++. Inoltre, viene discussa anche la procedura di scansione e lettura dei codici a barre insieme agli esempi di codice C++. Puoi esplorare di più sull’API utilizzando la documentazione.