Sviluppo della stampa di etichette usando b-pac SDK in un’applicazione C #

Sto sviluppando un’applicazione C # del sistema POS in Visual Studio 2012 RC . Devo stampare le vendite sulla stampante per etichette usando

Stampante per etichette Brothers P-Touch QL-500.

CHE COSA HO FATTO GIÀ.

Eseguo alcuni degli esempi incorporati ma questi esempi generano un’eccezione. Dopo aver fatto un sacco di ricerche su Google ho scoperto che questo è il problema del driver della stampante .

Non riesco a installare il driver perché l’installazione del driver richiede la connessione di una stampante. NON HO LA STAMPANTE.

COSA DEVO FARE

  • Hai idea che come posso fare questo compito.
  • qual è il modo giusto di stampare un’etichetta utilizzando la stampante per etichette Brothers P-Touch QL-500 .

    Per favore aiutami, ho fatto molto tempo a cercare. StackOverflow è la mia ultima speranza. Sono nuovo di questa stampa di etichette. Per favore aiutami sarò molto grato.

Il codice di esempio che sto usando.

bpac.DocumentClass doc = new DocumentClass(); if (doc.Open("templateFile.lbx")) { doc.GetObject("field1").Text = "..."; doc.GetObject("field2").Text = "..."; doc.StartPrint("", PrintOptionConstants.bpoDefault); doc.PrintOut(1, PrintOptionConstants.bpoDefault); doc.EndPrint(); doc.Close(); } 

Questo è il codice di esempio che sto provando. la prima riga lancia un’eccezione

 bpac.DocumentClass doc = new DocumentClass(); 

Allego anche un’anteprima della schermata di eccezione.

Anteprima schermata di eccezione generata

Ho avuto lo stesso identico messaggio di errore quando si è verificata l’eccezione. La soluzione per me era impostare il “target della piattaforma” sulla CPU “X86”. Questo può essere fatto tramite: (menu) Progetto -> Proprietà -> (scheda) Build -> Piattaforma target “x86” Invece di “Any CPU”

Ho sviluppato il software su Windows 7 a 64 bit.

Puoi trovare maggiori informazioni a riguardo nella documentazione di b-PAC SDK. C: \ Programmi (x86) \ Brother bPAC3 SDK \ Doc \ bPAC30_eng.chm Nella sezione “Risoluzione dei problemi” troverai: “Il programma non funziona su un sistema operativo a 64 bit. Cambia la piattaforma in” x86 “, e poi ricompilalo. ”

Questa soluzione è stata testata con l’hardware QL560 collegato al mio PC e ha funzionato.

Ecco un codice che ho usato per stampare usando questo object.

  string strPrinterAddress = "domain\machinename"; objDoc = new BrssCom.Document(); string strPath = "192.168.1.45" + " /D" + strPrinterAddress; if (objDoc.Open(strPath)) { objDoc.SetText(0, "Recycle: " + recycleReason); objDoc.SetText(1, "Other Text"); objDoc.SetBarcodeData(0, "1234"); objDoc.DoPrint(BrssCom.PrintOptionConstants.bpoAutoCut, "0"); } 

Tuttavia, @JamieMeyer ha ragione. Non si può, assolutamente non si può essere sicuri che questo funzionerà senza avere una stampante da testare. Nel mio esempio, sto usando un’etichetta molto semplice con 3 campi, uno dei quali è un codice a barre. Non si tratta semplicemente di usare variabili nominate, dipende in realtà dall’ordine in cui i campi sono stati aggiunti, ecc.

Non avevo una stampante io stesso, e ci sono volute circa 2 settimane di invio degli aggiornamenti del codice di notte, e poi il cliente ha testato il giorno successivo, round e round, per ottenere l’aspetto giusto. Se avessi dovuto fare tutto da capo, avrei acquistato una stampante da solo.

Buona fortuna, ma stai girando al buio senza una stampante.

Come intendi verificare i risultati della tua codifica senza l’unità fisica ?? Brother non offre alcun tipo di emulatore visivo, quindi la soluzione migliore è ottenere l’unità. Questi possono essere avuto per $ 75 al prezzo di strada, e probabilmente sullo scaffale del tuo negozio locale di forniture per ufficio. http://www.officedepot.com/a/products/506232/Brother-P-Touch-QL-500-PC/

Questo è il mio codice di lavoro. Penso che l’esempio c # non sia corretto e devi cambiare DocumentClass per Documento.

Il codice Actives è per interop.bpac.dll Il codice consigliato è per bpac.dll

blockquote

public void ETQ_Print (string Lote, string NumSerie) {

  try { // bpac.Document PrnLabel = new bpac.Document (); /// bpac.Document PrnLabel = new bpac.Document(); bpac.Document doc = new Document(); // Actualizo los Campos de la Etiqueta. // if (PrnLabel.Open(this.txtETQ_Plantilla.Text)) if (doc.Open (this.txtETQ_Plantilla.Text) != false) { // hemos cargado la plantilla corectamente. // Editamos los campos necesarios.. // PrnLabel.GetObject("BarCode").Text = Lote + NumSerie; doc.GetObject("BarCode").Text = Lote + NumSerie; // PrnLabel.GetObject ("objName").Text = ETQ_txtNumSerie.Text; // PrnLabel.StartPrint("", PrintOptionConstants.bpoDefault); doc.StartPrint("", PrintOptionConstants.bpoDefault); // PrnLabel.PrintOut(1, PrintOptionConstants.bpoDefault); doc.PrintOut(1, PrintOptionConstants.bpoDefault); // PrnLabel.EndPrint(); doc.EndPrint(); // PrnLabel.Close(); doc.Close(); } else { MessageBox.Show(this, "Open() Error: " + doc.ErrorCode); // PrnLabel.ErrorCode); } } catch { MessageBox.Show(this, "Error de Etiqueta", "Error Etiqueta", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 

blockquote

Ho avuto lo stesso identico problema. Risulta che ho scaricato inavvertitamente la versione a 32 bit dell’SDK. Informazioni sulla versione da http://www.brother.com/product/dev/label/bpac/download/index.htm#full

inserisci la descrizione dell'immagine qui

Una volta rimosso l’SDK a 32 bit e aggiunto l’SDK a 64 bit, l’esempio ha funzionato immediatamente. Questo è per b-PAK 3.2.001. Il passo successivo per me è stato caricare il modello utilizzato nel codice di esempio nell’editor P-touch e impostare il colore e le dimensioni di stampa corretti.