Labelprinter Brother QL-820NWB aansturen vanaf Ipad

Status
Niet open voor verdere reacties.

luc99

Gebruiker
Lid geworden
10 nov 2015
Berichten
98
Ik heb vandaag mijn nieuwe labelprinter Brother QL-820NWB ontvangen en wil hier labels mee gaan printen die ik zou moeten kunnen aansturen met Php of Javascript.
Heeft iemand hier een voorbeeld van ?
 
Laatst bewerkt:
Bedankt voor de tip.

Kan je me ook nog even op weg helpen hoe ik dit installeer om mee te testen.
 
Eerst Composer installeren. Dat is een handige package tool om applicaties te installeren en te updaten.

En dan dit commando uitvoeren in de webroot van je site.
Code:
composer require RamyTalal/Label-Printer

Als alles goed is heb je in /vendor/ een autoloader.php staan.
Die laadt dan al je PHP-applicaties in die je met composer geïnstalleerd hebt.
PHP:
<?php
require 'vendor/autoload.php';

// hier de rest van de test-code die er op de GitHub pagina van RamyTalal/Label-Printer staat.
 
Laatst bewerkt:
Ok, een gedeelte is me gelukt. Met composer is inderdaad een map vendor aangemaakt en is het bestand autoloader.php aangemaakt.

Voorlopig staat deze code nog op de C-schijf van mijn computer maar ik veronderstel dat deze op de webspace moet geraken.

Moet ik nu autoloader.php uploaden naar de webspace en hier aanroepen of zie ik het verkeerd ?
 
Het hele inhoud van /vendor/ uploaden naar je webspace. :)
Maar als je een eigen server (bare of VPS) hebt waar je site op draait, dan kan je ook daar Composer op installeren en dit uitvoeren.
 
ik gebruik een Synology Nas waar ik webspace ter beschikking heb.
Ik heb de volledige map vendor geupload in de webspace en via een browser de autoload.php gestart met http://ip-adres/vendor/autoload.php.

Er zal wel iets gebeurd zijn, maar ik zie geen actie op het scherm.
Het scherm is wit en er verschijnt geen tekst. Via de inspector heb ik gekeken maar zie ook geen foutmelding.
Als ik naar de mappen structuur kijk op de webspace zie ik wel dat er enkele mappen gewijzigd zijn.
Dit is in de map /vendor/ramytalal/label-printer en onderliggende mappen.
Dus ga ik er nu al maar vanuit dat dit in orde is.

Hoe gebruik ik dit nu verder ?
 
Wat is je code tot nu toe? Heb je al je labelprinter aangeroepen, en wat testcommando's verstuurd?

Zie mijn bericht van gisteren om 21:39.
 
Laatst bewerkt:
Ik heb me nog nog even verder toegelegd op het gebruik van composer in eerste instantie.
Het is me dan uiteindelijk toch gelukt om deze geïnstalleerd te krijgen op mijn server.

Met onderstaand commando is het me dan op gelukt om de installatie op mijn webserver rechtstreeks te laten verlopen.

Code:
composer require RamyTalal/Label-Printer

Hierdoor is inderdaad een map vendor aangemaakt. Deze stond in de root directory en heb deze nu gekopieerd naar de www map zodat ik deze kan bereiken via een browser.
In deze map staat ook het bestand autoloader.php. Maar dan wordt het weer even onduidelijk voor mij.
In het bestand autoloader staat

Code:
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInitc1a51fec35271ac3fb6160390ade1556::getLoader();

Je zegt dat ik daarna de testcode van RamyTalal moet toevoegen.
Ik zie code staan bij ESC/P en Template. Hoe dien ik deze hier aan toe te voegen.

Ik heb om te testen de code van Template toegevoegd in autoloader.php en ook het Ip adres aangepast naar het Ip adres van mijn labelprinter alsvolgt :

Code:
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInitc1a51fec35271ac3fb6160390ade1556::getLoader();

use Talal\LabelPrinter\Printer;
use Talal\LabelPrinter\Mode\Template;
use Talal\LabelPrinter\Command;

$stream = stream_socket_client('tcp://192.168.1.45:9100', $errorNumber, $errorString);

$printer = new Printer(new Template(2, $stream));
$printer->addCommand(new Command\ObjectCommand('title', 'R. Talal'));
$printer->addCommand(new Command\ObjectCommand('address', 'H.H. Schefferlaan 9'));
$printer->addCommand(new Command\ObjectCommand('postalcode', '7771 CW'));
$printer->addCommand(new Command\ObjectCommand('city', 'Hardenberg'));

$printer->printLabel();

fclose($stream);

Als ik nu in een browser het bestand autoload.php oproep wordt het scherm wit en bij de inspector zijn er geen fouten.
Wat doe ik hier verkeerd ?
 
Als je logisch naar mijn script kijkt, moet je je autoloader juist NIET aanpassen! De naam zegt het eigenlijk al: "automatische lader"

Dus lekker in een eigen script werken, autoloader includeren/requiren, en lekker aan de slag gaan!

Voordeel: Als je straks bijv. straks een ander pakket via composer zou installeren, dan wordt die ook aan de autoloader toegevoegd. :).
 
Laatst bewerkt:
Ok, autoload.php opnieuw aangepast en een nieuw bestandje test.php gemaakt met volgende code

Code:
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

use Talal\LabelPrinter\Printer;
use Talal\LabelPrinter\Mode\Template;
use Talal\LabelPrinter\Command;

$stream = stream_socket_client('tcp://192.168.1.45:9100', $errorNumber, $errorString);

$printer = new Printer(new Template(2, $stream));
$printer->addCommand(new Command\ObjectCommand('title', 'R. Talal'));
$printer->addCommand(new Command\ObjectCommand('address', 'H.H. Schefferlaan 9'));
$printer->addCommand(new Command\ObjectCommand('postalcode', '7771 CW'));
$printer->addCommand(new Command\ObjectCommand('city', 'Hardenberg'));

$printer->printLabel();

fclose($stream);

?>

Als ik deze uitvoer krijg ik geen foutmelding. Ik zie dat de pagina een tijdje in werking is tot het daarna stopt maar printer gebeurt nog niet.
 
Ik zie nu wel een fout verschijnen op het scherm

Warning: stream_socket_client(): unable to connect to tcp://192.168.1.45:9100 (No route to host) in /volume1/web/lvs_labels/vendor/test.php on line 11 Fatal error: Uncaught Error: Class 'Talal\LabelPrinter\Printer' not found in /volume1/web/lvs_labels/vendor/test.php:13 Stack trace: #0 {main} thrown in /volume1/web/lvs_labels/vendor/test.php on line 13
 
Nu probeer ik nog even en krijg volgende melding

Fatal error: Uncaught Error: Class 'Talal\LabelPrinter\Printer' not found in /volume1/web/lvs_labels/vendor/test.php:13 Stack trace: #0 {main} thrown in /volume1/web/lvs_labels/vendor/test.php on line 13
 
Heb je nu autoloader.php nou ge required?
Het voelt alsof je nog steeds in de autoloader staat te proggen?
 
Sorry, wellicht voor mijn onwetenheid op dit domein, maar dit is voor mij volledig onbekend terrein.
Ik zag onderstaande in je berichtje en dacht dat dit op deze manier zou moeten.

autoloader includeren/requiren, en lekker aan de slag gaan

Niet dus, aan je reactie te lezen :)

Kan je me nog even op weg helpen
 
Wat lukt je daar niet aan? Zie mijn code van gisteren.
Als je class errors ziet, dan doe je blijkbaar iets mis:
- Of je autoloader roep je niet aan
- Of je mist je namespaces die bovenaan je script staan

En als je een melding ziet over een 'unable to connect', dan klopt het IP-adres/poort niet waar je naar toe connect.
 
Laatst bewerkt:
Ik zie het. De regel van de require had ik inderdaad foutief overgenomen uit het bestand van autoloader.

Ik heb het nu het bestand test.php aangepast zoals U aangegeven hebt met volgende code
Code:
<?php

require 'vendor/autoload.php'

use Talal\LabelPrinter\Printer;
use Talal\LabelPrinter\Mode\Template;
use Talal\LabelPrinter\Command;

$stream = stream_socket_client('tcp://192.168.1.45:9100', $errorNumber, $errorString);

$printer = new Printer(new Template(2, $stream));
$printer->addCommand(new Command\ObjectCommand('title', 'R. Talal'));
$printer->addCommand(new Command\ObjectCommand('address', 'H.H. Schefferlaan 9'));
$printer->addCommand(new Command\ObjectCommand('postalcode', '7771 CW'));
$printer->addCommand(new Command\ObjectCommand('city', 'Hardenberg'));

$printer->printLabel();

fclose($stream);

?>

Na uitvoering van dit bestand bekom ik volgende foutmelding

Parse error: syntax error, unexpected 'use' (T_USE) in /volume1/web/vendor/test.php on line 5
 
Oeps, nog een klein foutje ; vergeten achter de require regel. Intussen aangepast en geeft nu volgende melding :

Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in /volume1/web/vendor/test.php on line 3 Fatal error: require(): Failed opening required 'vendor/autoload.php' (include_path='.') in /volume1/web/vendor/test.php on line 3
 
Hey,

Het overige gaat een beetje boven mijn pet maar....
Als je test.php in map vendor hebt staan, moet je in de require toch niet weer de map vendor benoemen ?

Frank
 
Waarom zou je een testbestand in /vendor/ plaatsen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan