Configurare

Configurarea ghidată a driverului DxPrint: conectarea casei de marcat prin USB, COM sau TCP/IP, modul de rulare, licența și parametrii din config.json.

  1. 01

    Conectează echipamentul

    Driverul verifică porturile seriale și caută un echipament Datecs sau Daisy. Dacă detectarea automată nu reușește, configurează manual conexiunea USB, COM sau TCP/IP. Rezultatul detectării precompletează wizardul, dar nu modifică încă config.json.

  2. 02

    Alege modul de rulare

    Alege modul Individual pentru apelarea executabilului cu un bon, Rezident pentru monitorizarea unui director sau Embedded pentru serviciul HTTP. Pentru modul Rezident, specifică directorul cu bonuri.

  3. 03

    Configurează licența

    Introdu o licență existentă, solicită o licență trial pentru 30 zile sau continuă fără licență. Fără licență, driverul salvează configurația, dar nu poate tipări. Licența trial cerută din driver nu include Cloud. Pentru Cloud, cere licența de test din contul DxPrint, înainte de trialul din driver: o casă primește o singură licență trial.

  4. 04

    Salvează și închide configurarea

    Apasă Finalizează pentru a scrie opțiunile în config.json. Pagina afișează instrucțiunile pentru modul ales. Verifică setările avansate dacă este nevoie, apoi apasă Am finalizat setup-ul pentru a opri serverul local.

Wizardul rulează numai la prima pornire fără argumente și este disponibil la http://127.0.0.1:8585/setup. După configurare, pornește din nou DxPrint cu PORNESTE_DXPRINT. Pentru a redeschide setările, rulează scurtătura scurtaturi/start_web_config_local pentru sistemul tău de operare sau folosește -start-config.

Detectează din nou echipamentul

Directorul scurtaturi din fiecare arhivă include o comandă care pornește DxPrint în modul de detectare automată:

dxprint_auto_configure_device.batWindows
dxprint_auto_configure_device.shLinux
dxprint_auto_configure_device.commandmacOS

Scurtătura rulează comanda -auto-configure-device. Driverul caută echipamentul, actualizează config.json, afișează rezultatul și se oprește fără să deschidă interfața web.

Dacă ai nevoie de configurare manuală, poți modifica direct fișierul config.json. Referința completă este disponibilă mai jos.

config.jsonExemplu de configurare complet
{
  "echipament": {
    "tipEchipament": "datecs",
    "port": "COM1",
    "baudRate": 115200,
    "numarOperator": 1,
    "parolaOperator": "0001",
    "numarLogic": 1,
    "connTimeout": 30
  },
  "rulare": {
    "rezident": false,
    "directorBonuri": "bonuri",
    "ftpServer": "",
    "ftpUtilizator": "",
    "ftpParola": "",
    "ftpDirectorBonuri": "",
    "ftpIntervalVerificareInSecunde": 300,
    "httpServerActiv": false,
    "httpPort": 8090,
    "httpUtilizator": "",
    "httpParola": "",
    "httpPermiteListareDirBonuri": true,
    "embedded": false,
    "corsActiv": false,
    "logLevel": "INFO"
  },
  "general": {
    "directorBonuriExecutate": "executate",
    "directorBonuriRaspuns": "raspuns",
    "generareFisierCuNrBonFiscal": true,
    "directorRapoarteAnaf": "ANAF",
    "extensieFisierBon": "inp,bon",
    "intervalPastrareBonuriInDirector": 7,
    "tiparesteRaportZAutomat": true,
    "raspundeCuNrEroareInFisierRaspuns": false,
    "transformaCifDinTextPublicitarInFactura": "",
    "trimiteRaportZPeEmail": "",
    "prevalidareValoareBon": "false",
    "ziDinLunaPentruExtragereAutomataFisiereXml": 0,
    "trimiteFisiereXmlPeEmail": "",
    "httpProxy": "",
    "tiparesteRaportPluInainteDeRaportZ": false,
    "nrMaximRapoarteZNetrimise": 0,
    "nrMaximRapoarteZNetrimiseNotificare": 0,
    "mapareModalitatiPlata": [
      {"modalitate": "NUMERAR", "pozitie": 0},
      {"modalitate": "CARD", "pozitie": 1},
      {"modalitate": "CREDIT", "pozitie": 2},
      {"modalitate": "TICHETE_MASA", "pozitie": 3},
      {"modalitate": "TICHETE_VALORICE", "pozitie": 4},
      {"modalitate": "VOUCHER", "pozitie": 5},
      {"modalitate": "PLATA_MODERNA", "pozitie": 6},
      {"modalitate": "CARD_AVANS_NUMERAR", "pozitie": 7},
      {"modalitate": "ALTE_METODE", "pozitie": 8}
    ]
  },
  "cloud": {
    "active": false,
    "enrollmentUUID": ""
  },
  "licenta": "Cumpara licenta de pe www.dxprint.ro",
  "versiune": 12
}

După instalarea adaptorului USB-serial, verifică în Device Manager (Windows) sau în /dev/ttyXXX (Linux, macOS) ce port a primit echipamentul. Pe Windows portul are forma COM1, COM2, COMXX, iar pe Linux și macOS forma /dev/ttyACM0, /dev/ttyACM1, /dev/ttyACMX. Trece portul în opțiunea port din fișierul de configurare. Valoare implicită COM1.

Pentru conectarea prin TCP/IP, setează portul în formatul tcp://ip:port. Exemplu: tcp://192.168.1.23:3999. Majoritatea echipamentelor folosesc portul 3999. Poți verifica setarea de rețea cu această comandă:

Verifică rețeaua

Casa de marcat comunică de obicei cu viteza 115200. Dacă e nevoie, modifică opțiunea baudRate după viteza setată în casă. Trece aceeași viteză și în Device Manager, la portul COM, ca driverul și casa să comunice fără erori. La conectarea prin TCP/IP parametrul este ignorat. Valoare implicită 115200.

tipEchipament reprezintă tipul echipamentului la care se face conectarea. Folosiți datecs pentru echipamentele Datecs și daisy pentru echipamentele Daisy. Valoarea implicită este datecs.

numarLogic este numărul logic al echipamentului, folosit în comenzile în format FPrint. Acceptă valori între 1 și 999. Valoarea implicită este 1.

numarOperator reprezintă utilizatorul setat în casa de marcat. Echipamentul fiscal are inițial operatorul numărul 1.

parolaOperator reprezintă parola operatorului setat în casa de marcat. Echipamentul fiscal are inițial parola de operator 0001.

connTimeout reprezintă timpul, în secunde, cât driverul așteaptă un răspuns de la echipament. Valoarea inițială este 30 de secunde.


Driverul are două moduri de rulare pe fișiere: Individual și Rezident. Pentru modul rezident, trece valoarea true la opțiunea rezident. În modul rezident, driverul urmărește directorul din opțiunea directorBonuri și prelucrează, pe rând, fiecare fișier de bon nou apărut acolo.

În modul Individual, trimite numele fișierului de bon ca argument. Fișierul poate fi în directorul driverului sau poate fi indicat printr-o cale absolută.

Tipărește un fișier

Opțiunile de mai jos se aplică doar când driverul rulează în modul rezident (FTP, HTTP) sau în modul embedded (doar HTTP).

ftpServer reprezintă adresa serverului FTP de pe care driverul preia bonurile generate în directorul din opțiunea ftpDirectorBonuri. Adresa se scrie sub forma ip:port sau hostname:port. Pentru portul standard 21, portul poate lipsi.

ftpUtilizator reprezintă utilizatorul pentru conectarea la serverul FTP. Dacă serverul permite conectarea Anonymous, numele de utilizator trebuie să fie Anonymous, iar parola poate fi orice text.

ftpParola reprezintă parola utilizatorului FTP. La conectarea Anonymous, câmpul trebuie totuși completat.

ftpDirectorBonuri reprezintă directorul de pe serverul FTP din care se preiau bonurile fiscale, de exemplu bonuri/generate sau bonuri. La conectare, driverul intră în acest director.

ftpIntervalVerificareInSecunde reprezintă intervalul, în secunde, la care driverul caută bonuri noi în directorul de pe serverul FTP. Valoare minimă 60 de secunde.

Lucrul cu un director de pe un server FTP este descris în pagina Printare bonuri din director FTP.

httpServerActiv: cu valoarea true, driverul pornește un server web pe portul din opțiunea httpPort, prin care bonurile se tipăresc direct, cu o cerere POST către endpoint-ul /bonuri.

httpPort reprezintă portul serverului HTTP, între 1024 și 65535.

httpUtilizator reprezintă numele de utilizator pentru protejarea serverului web prin autentificare de tip Basic Auth.

httpParola reprezintă parola pentru protejarea serverului web. Autentificarea este activă doar când sunt completate atât utilizatorul, cât și parola.

httpPermiteListareDirBonuri: cu valoarea true, interfața web a driverului, deschisă în browser la adresa http://IP:port, arată și directoarele de bonuri executate și de răspuns din configurația driverului.

embedded: cu valoarea true, vânzările și rapoartele zilnice se trimit prin cereri către un serviciu web HTTP REST JSON. Adresa IP a serviciului depinde de opțiunea httpServerActiv: dacă este activă, serviciul se deschide pe adresa din rețea, de forma 192.168.1.x, iar dacă este inactivă, pe adresa 127.0.0.1. Portul vine în ambele cazuri din opțiunea httpPort. Și în acest mod, serviciul se poate proteja cu utilizatorul și parola din opțiunile de mai sus.

Integrarea cu aplicații prin serviciul web JSON este descrisă în pagina Integrare prin serviciul web JSON.

corsActiv: cu valoarea true, serviciul acceptă cereri din JavaScript și de pe alt domeniu. Află mai multe despre CORS. Opțiunea se aplică doar când opțiunea embedded este activă.
Cu opțiunea activă, serverul trimite clientului următoarele headere:
- Access-Control-Allow-Origin: *
- Access-Control-Allow-Methods: OPTIONS,GET,POST,PUT,DELETE,HEAD
- Access-Control-Allow-Headers: X-Requested-With, Content-Type, Authorization, Origin, Accept

logLevel reprezintă nivelul de detaliu al logului afișat în consolă și scris în fișierul de log. Valorile posibile sunt: DEBUG, INFO sau ERROR.


Această secțiune conține opțiunile generale ale driverului, valabile în ambele moduri de rulare pe fișiere (Individual și Rezident).

directorBonuriExecutate reprezintă directorul în care se copiază bonurile executate. Bonul copiat aici nu conține informațiile de răspuns. Calea poate fi relativă, de forma "executate": driverul creează directorul executate lângă dxprint.exe. Poate fi și absolută, de forma "c:\\executate": bonul se copiază în directorul c:\executate. La calea absolută, scrie un \ în plus: c:\\ în loc de c:\.

directorBonuriRaspuns reprezintă directorul în care se generează fișierele de răspuns ale bonurilor executate. Calea poate fi relativă, de forma "raspuns": driverul creează directorul raspuns lângă dxprint.exe. Poate fi și absolută, de forma "c:\\raspuns": fișierul se generează în directorul c:\raspuns. La calea absolută, scrie un \ în plus: c:\\ în loc de c:\. Fișierul de răspuns conține informațiile de răspuns exact ca FPrint, cu codurile Er, Ok și Sd. Dacă un rând nu este valid, la sfârșitul lui apare și motivul pentru care bonul a fost respins. La lipsa hârtiei sau la un raport Z neefectuat, mesajul de eroare apare pe ultimul rând din fișier.

generareFisierCuNrBonFiscal: cu valoarea true, driverul generează în directorul directorBonuriRaspuns, pe lângă fișierul de răspuns, și un fișier cu extensia .nrb. Acesta conține informații despre bon: numărul bonului, numărul raportului Z, numele fișierului și data execuției: OK;Z=38|NR=503|UNIQUE_ID=bon.txt|2018_07_09_17_00_04_312. Fișierul se generează doar când bonul a fost executat cu succes. Valoare implicită true.

directorRapoarteAnaf reprezintă directorul în care se extrag din echipamentul fiscal fișierele XML/P7B necesare raportării către ANAF. Calea poate fi relativă, de forma "anaf": driverul creează directorul "anaf" lângă dxprint.exe. Poate fi și absolută, de forma "c:\\anaf": fișierele se generează în directorul c:\anaf. La calea absolută, scrie un \ în plus: c:\\ în loc de c:\. În plus, la extragerea fișierelor pentru ANAF, driverul creează câte un subdirector pentru fiecare tip de raport. La extragerea după numărul Z, subdirectorul se numește Z10-20, adică numerele Z de început și de sfârșit din linia de comandă. La extragerea după interval, subdirectorul se numește 09-2018, adică luna și anul datei de început din linia de comandă.

extensieFisierBon reprezintă lista extensiilor de fișier de bon pe care driverul le prelucrează, separate prin virgulă. De exemplu, cu inp,bon,txt driverul prelucrează doar fișierele cu extensia .inp, .bon sau .txt. Un fișier de bon cu altă extensie este ignorat, atât în modul Rezident, cât și în modul Individual. Valoare implicită inp,bon.

intervalPastrareBonuriInDirector reprezintă numărul maxim de zile cât se păstrează un fișier în directoarele directorBonuriExecutate și directorBonuriRaspuns. Fișierele mai vechi se șterg automat la pornirea driverului. Maximul permis este 30 de zile. Valoare implicită 7 zile.

tiparesteRaportZAutomat: cu valoarea true, dacă la tipărirea unui bon fiscal au trecut mai mult de 24 de ore, driverul tipărește întâi raportul Z și apoi bonul. Valoare implicită true.

raspundeCuNrEroareInFisierRaspuns: cu valoarea true, dacă o comandă dintr-un bon fiscal dă eroare la execuție, eroarea se scrie în fișierul de răspuns al bonului, sub forma Er-111024. Pentru integrare ai nevoie de lista completă a codurilor de eroare (XLS). Valoare implicită false.

transformaCifDinTextPublicitarInFactura permite tipărirea codului fiscal în formatul nou cerut de legislație, chiar dacă a fost trimis ca text publicitar, prin comanda P. De exemplu, dacă aplicația ta generează comanda: P,1,______,_,__;CUI client: RO123456789;;;;; trece în această opțiune exact textul CUI client:. La prevalidarea bonului, driverul extrage codul fiscal și îl tipărește în formatul nou. Opțiunea nu ține cont de litere mari sau mici.

trimiteRaportZPeEmail trimite raportul Z pe email, la executarea lui, către adresele din această opțiune. Adresele se separă prin virgulă, de exemplu: suport@dxprint.ro,test@test.com. Driverul trimite raportul Z printr-o cerere HTTP POST către serviciul https://www.dxprint.ro, care validează conținutul și trimite emailul cu informațiile primite. Informațiile sunt trimise securizat și nu sunt stocate pe serverele noastre sau ale furnizorului de email.

prevalidareValoareBon: cu opțiunea activă, bonul ajunge la echipament doar după validarea sumelor. Așa scade mult riscul ca bonul să rămână deschis din cauza unor sume de plată greșite. Valoare implicită false.

ziDinLunaPentruExtragereAutomataFisiereXml reprezintă ziua din lună în care driverul exportă fișierele XML din luna precedentă și le trimite pe email, dacă opțiunea trimiteFisiereXmlPeEmail conține cel puțin o adresă. Exportul se face oricum, chiar dacă opțiunea trimiteFisiereXmlPeEmail este goală. Valoarea este între 0 și 20: 0 dezactivează exportul, iar 1 - 20 este ziua din lună a exportului automat. La export, driverul creează în directorul din opțiunea directorRapoarteAnaf o arhivă de forma lună-an.zip (de exemplu, 04-19.zip). De reținut: dacă ziua aleasă este 5, iar pe 5 casa nu este deschisă, driverul încearcă exportul și în următoarele 2 zile, pe 6 și pe 7. Dacă exportul reușește pe 5, driverul nu mai încearcă în zilele următoare. Valoare implicită 0.

Pentru casele de marcat înrolate în Cloud, driverul trimite zilnic în Cloud fișierele XML semnate de casă, începând cu prima zi a lunii în care casa a fost înrolată. Exportul lunar de la pornire nu mai rulează pentru aceste luni, deci casa nu mai este ocupată câteva minute la începutul lunii. Pentru lunile dinainte de înrolare, exportul automat descris mai sus rulează în continuare.

trimiteFisiereXmlPeEmail trimite fișierele XML exportate automat din echipamentul fiscal către adresele de email din această opțiune. Opțiunea ziDinLunaPentruExtragereAutomataFisiereXml trebuie să fie activă. Adresele se separă prin virgulă, de exemplu: suport@dxprint.ro,test@test.com. Driverul trimite fișierele printr-o cerere HTTP POST către serviciul https://www.dxprint.ro, care validează conținutul și trimite emailul cu informațiile primite. Informațiile sunt trimise securizat și nu sunt stocate pe serverele noastre sau ale furnizorului de email.

Pentru casele de marcat înrolate în Cloud, fișierele XML se păstrează în contul DxPrint, începând cu luna înrolării. Fișierele stau pe servere din Uniunea Europeană, cât timp seria are o licență trial sau anuală cu Cloud validă, plus 30 de zile după expirare. După un trial cu Cloud, fișierele se păstrează doar dacă se cumpără o licență anuală cu Cloud; o licență anuală fără Cloud nu le păstrează. Arhiva lunară pentru contabilitate se descarcă din cont, din pagina Cloud → ANAF, după ce casa a trimis toate rapoartele Z ale lunii. Arhiva are aceeași structură ca exportul făcut de driver.

httpProxy reprezintă serverul proxy folosit de cele 2 servicii ale driverului care trimit pe email raportul Z și fișierele XML exportate automat. Se folosește când calculatorul pe care rulează driverul iese pe internet doar printr-un proxy. Formatul adresei de proxy este (http|https)://(hostname:ip):port. Raportul Z și fișierele XML se trimit prin cereri HTTP POST către serviciul https://www.dxprint.ro.

tiparesteRaportPluInainteDeRaportZ: cu opțiunea activă, driverul tipărește raportul de produse Z PLU înainte de raportul Z. Valoare implicita false.

nrMaximRapoarteZNetrimise reprezintă numărul maxim de rapoarte Z nesincronizate cu serverul ANAF. Peste acest număr, driverul se oprește. Cu valoarea 0, verificarea nu se face. Valoare implicita 0.

nrMaximRapoarteZNetrimiseNotificare reprezintă numărul de rapoarte Z nesincronizate cu serverul ANAF peste care driverul trimite o notificare pe email, cu numărul de rapoarte Z nesincronizate. Notificarea folosește adresele de email din opțiunea trimiteRaportZPeEmail. Notificarea se trimite doar dacă driverul rulează în modul embedded sau rezident. Cu valoarea 0, verificarea nu se face. Valoare implicita 0.

mapareModalitatiPlata permite remaparea modalităților de plată la tipărirea bonului fiscal, pentru compatibilitate cu aplicațiile existente.


Secțiunea cloud păstrează înrolarea în DxPrint Cloud. Driverul o completează din tabul Cloud al paginii de configurare sau cu comanda -cloud, deci nu trebuie editată manual.

active pornește Cloud la pornirea driverului, în modul rezident sau embedded. Cu false, Cloud rămâne oprit, dar înrolarea se păstrează. Valoare implicită false.

enrollmentUUID este UUID-ul înrolării, scris de driver la înrolare sau la restaurare. Cheia privată a înrolării nu stă în config.json, ci în fișierul cloud-private.pem din același director. Fără această cheie, înrolarea nu mai poate fi restaurată.


Opțiunea licenta conține licența de funcționare a driverului. Fără licență, driverul nu poate trimite comenzi către echipamentul fiscal. Scrie licența pe un singur rând, în locul textului Cumpara licenta de pe www.dxprint.ro, inclusiv cele două semne egal de la sfârșit.

Tutorial video

Toate tutorialele
Tutorial 2

Instalare driver și configurare casă de marcat

Pornești DxPrint cu PORNESTE_DXPRINT, driverul găsește singur casa, alegi modul de rulare și adaugi licența.