Avatar billede kodak Mester
08. august 2010 - 00:24 Der er 21 kommentarer og
1 løsning

Udskriv fra server

Jeg har et textarea og en send knap
jeg vil gerne have at når jeg trykker på send knappen bliver en besked sendt tilbage til serveren og serveren udskriver indholdet af text boxen.

Er det muligt?

Det er lidt son just eat man laver en bestilling og trykker send og en ordre bliver printet ud.

Er der nogen der kan hjælpe mig med en sådan løsning?
Avatar billede majbom Novice
08. august 2010 - 02:00 #1
det er ikke noget jeg har rodet med før, men måske der er noget her der kan bruges: http://uk.php.net/printer
Avatar billede kodak Mester
08. august 2010 - 11:01 #2
Det skal ikke være brugerens pc den skal printe på.
Der skal printes fra host serveren.
Avatar billede intenz Novice
08. august 2010 - 19:08 #3
Hvis du har fuld adgang til serveren (og printeren er tilsluttet hertil), kan du vel gemme indholdet fra textarea i en fil. Og køre en print kommando med enten exec() eller system().

http://php.net/manual/en/function.exec.php
http://php.net/manual/en/function.system.php
Avatar billede kodak Mester
08. august 2010 - 20:14 #4
Her du et udkast på hvad du mener?
Avatar billede intenz Novice
08. august 2010 - 21:07 #5
Et udkast kunne se sådan ud:

<?php
$textarea_indhold = "Her er noget tekst";
$filnavn = 'data.txt';

// gem indholdet i filen
$fp = fopen($filnavn, 'w');
fwrite($fp, $textarea_indhold);
fclose($fp);

// Print indholdet af filen.
system('cat '.$filnavn.' > /dev/lp');

// slet filen bagefter
unlink($filnavn);
?>

Jeg er ikke linux-mand. Print-kommandoen der bruges er fundet her:
http://tldp.org/HOWTO/Printing-Usage-HOWTO-2.html

Om den virker kan jeg ikke svare dig på. Du skal have printen sat op på serveren så du kan printe fra den, fra kommando-linjen. Du skal også have sat rettigheder op, så du kan kalde kommendoen fra PHP. Server administration er ikke min spids kompetence, så scriptet burde virke, såfremt du har den rigtige opsætning af serveren.
Avatar billede kodak Mester
09. august 2010 - 15:33 #6
er der ingen mulighed for at gøre det via ip på mit lan er har min printer ip: 192.168.100.26 og port 9100 (Hvis man skal printe)

Han man ikke sende en kommando den vej?
Avatar billede intenz Novice
09. august 2010 - 18:37 #7
Muligvis, hvis serveren er på samme netværk.

Du skal kunne printe fra kommando-linjen på din server, hvis du kan få den til at gøre det via printeren IP skal du indsætte den kommando du bruger i 'system(...)' i koden jeg skrev. Så bør det virke.

Som skrevet, er jeg ikke linux/netværks/printer ekspert. Jeg kan du hjælpe dig med PHP scriptet. Du skal nok prøve at finde svaret på din sidste kommentar i en af server kategorierne:
http://www.eksperten.dk/spm/Styresystemer/Server/
Avatar billede kodak Mester
09. august 2010 - 22:42 #8
Det er begrænset hvad min server kan da det er en NAS.
Og kan ikke få cmd til at udskrive.
Avatar billede kodak Mester
09. august 2010 - 22:44 #9
køre jeg scriptet fra min NAS skriver den:
Warning: system() [function.system]: PHP exec disable. in /volume1/web/printer/test.php on line 11
Avatar billede intenz Novice
09. august 2010 - 22:54 #10
#9. Den er en indstilling der skal rettes i php.ini.

En hurtig søgning på google gav:
http://forum.synology.com/enu/viewtopic.php?f=34&t=7291

Hvis den er synology du har, kan du prøve løsningen i den 3. kommentar i linket. På eget ansvar :)
Avatar billede kodak Mester
09. august 2010 - 23:05 #11
Skal der ikke også være noget med printer i min php.ini?
Har prøvet fra min lokale server* uden held.

* Windows xp
med "xampp" server host.
Avatar billede kodak Mester
09. august 2010 - 23:12 #12
Pis har ikke en skid forstand på telnet
Avatar billede kodak Mester
09. august 2010 - 23:37 #13
Okay fandt lid us at telnet var ikke så svært (hvis jeg har forstået det korrekt) men kan ikke finde det de skriver om. har prøvet mange forskellige sammensætminger.
Avatar billede kodak Mester
14. august 2010 - 20:47 #14
Jeg skulle mene at jeg skal kunne bruge denne men den melder fejl på linie 2.

<?php
$printer = "\\\\192.168.100.26\\HP Color LaserJet 2600n");
if($ph = printer_open($printer))
{
  // Get file contents
  $fh = fopen("filename.ext", "rb");
  $content = fread($fh, filesize("filename.ext"));
  fclose($fh);
     
  // Set print mode to RAW and send PDF to printer
  printer_set_option($ph, PRINTER_MODE, "RAW");
  printer_write($ph, $content);
  printer_close($ph);
}
else "Kunne ikke forbinde...";
?>

Hvad er der galt?

Den skriver:
Parse error: syntax error, unexpected ')' in /volume1/web/printer/index2.php on line 2
Avatar billede intenz Novice
15. august 2010 - 11:50 #15
Du afslutter linje 2 med parentes, 2600n");
Det skal være 2600n";
Avatar billede kodak Mester
15. august 2010 - 12:23 #16
Det fandt jeg også ud af
men så kommer fejlen i linie 3

Fatal error: Call to undefined function printer_open() in C:\xampp\htdocs\printer.php on line 3
Avatar billede kodak Mester
15. august 2010 - 13:22 #17
Jeg køre
Windows XP
PHP Version 5.2.6

Eller
Windows (Unknownd)
PHP Version 5.2.6

og efter hvad jeg har læst mig til har 5.2.6 printer funktionen i sig.
Avatar billede kodak Mester
15. august 2010 - 14:25 #18
okay prøver med:

<?php

$printer = "\\\\192.168.100.3\\HP Color LaserJet 2600n";

$handle = printer_open($printer);
printer_start_doc($handle, "install.txt");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Ip'en er på pc'en printeren er koblet op til.

Men nu viser siden ingen fejl men printer heller ikke.
Avatar billede kodak Mester
15. august 2010 - 15:08 #19
Fik den
Printeren sad låst Med noget i kø der ikke ville slettes.
Resultat:
<?php

$text = $_POST[text];
$printer = "\\\\192.168.100.3\\HP Color LaserJet 2600n";

$handle = printer_open($printer);
printer_start_doc($handle, "PHP Online Print");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, $text, 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>
Avatar billede kodak Mester
15. august 2010 - 15:11 #20
Serveren skal have:
PHP Version 5.2.6
Og være sat op til at måtte bruge:
extension=php_printer.dll
I php.ini filen
Avatar billede majbom Novice
20. august 2010 - 22:02 #21
hehe, jeg havde så slet ikke fået den del med printeren med, jeg troede du mente print til skærmen :s

super du fik det til at spille :)
Avatar billede majbom Novice
20. august 2010 - 22:04 #22
og der fik jeg så lige byttet rundt på dine tråde - bare glem alt hvad jeg har skrevet i dag! :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester