Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działa drukowanie spod PHP
Forum PHP.pl > Forum > PHP
nitro18
Mam kod:

  1. <?php
  2. $print = printer_open();
  3. printer_write($print, "Test druku");
  4. printer_close($print);
  5. ?>


I wyskakuje mi błąd: Warning: printer_write() [function.printer-write]: couldn't allocate the printerjob [1804] in D:\serwer\htdocs\print.php on line 3

To ja nie wiem o co chodzi sad.gif

Drukarka podłączona... nie wiem czemu nie wysyła do drukarki

Drukarka: Lexmark X3450 (Lexmark X3400 Series)
sniezny_wilk
Czy zainstalowałeś odpowiednią bibliotekę ? Jaki system ? Windows ?
LonelyKnight
Cytat(sniezny_wilk @ 5.06.2008, 13:44:40 ) *
Czy zainstalowałeś odpowiednią bibliotekę ? Jaki system ? Windows ?


To PECL.

@nitro18

Może coś takiego:

  1. <?php
  2. $print = printer_open();
  3. printer_set_option($print, PRINTER_MODE, "RAW");
  4. printer_write($print, "Test druku");
  5. printer_close($print);
  6. ?>
sniezny_wilk
@LonelyKnight - uważasz, że PECL jest biblioteką domyślnie dodaną do PHP ? Myślałem, że nie.. dodam, że biblioteka ta jest obsługiwana tylko przez Windowsa.
LonelyKnight
Nie nie uważam tak smile.gif
sniezny_wilk
Cytat(LonelyKnight @ 5.06.2008, 12:09:07 ) *
Nie nie uważam tak smile.gif


Aha smile.gif Moim zdaniem to jest brak biblioteki, lub niezgodności biblioteki z systemem.
webdice
Drugi komentarz w manualu, może to Ci pomoże:

Cytat
couldn't allocate the printerjob [1804] - error on windows 2000

I was printing in several places in one module, and kept getting this error after just two printer_write()'s. It was solved by printing everything into a buffer first, then calling printer_write() just once.

EX:
$_SESSION['PrintBuffer']=''; //printer buffer
print_sub_1();
print_sub_2();
print_sub_3();

$handle=printer_open("EPSON TM-T88III Receipt");
printer_set_option($handle, PRINTER_MODE, "RAW");
printer_write($handle, $_SESSION['PrintBuffer']);
//print $_SESSION['PrintBuffer']; //for testing
printer_close($handle);


Cytat(sniezny_wilk @ 5.06.2008, 14:14:06 ) *
Aha smile.gif Moim zdaniem to jest brak biblioteki, lub niezgodności biblioteki z systemem.


Jakby brakowało biblioteki, to wyskoczyłby błąd o braku danej funkcji.
LonelyKnight
Biblioteka chyba zainstalowana jest skoro wywaliło taki błąd.

Co do systemu to faktycznie może tak być jak napisałeś - manual:

Cytat
These functions are only available under Windows 9.x, ME, NT4 and 2000.
nitro18
Panowie, Proszę Was nie kłócie się.

Używam XP. Biblioteka jest zainstalowana (php_printer.dll) a w php.ini jest "włączona".

Cytat
Może coś takiego:
  1. <?php
  2. $print = printer_open();
  3. printer_set_option($print, PRINTER_MODE, "RAW");
  4. printer_write($print, "Test druku");
  5. printer_close($print);
  6. ?>


Działa, ale drukarka nie drukuje sad.gif

Cytat
print_sub_1();


a co to jest, bo php nie zna tej funkcji sad.gif

a wywalając go i 2 inne pochodne nie działa.



Panowie, Proszę Was nie kłócie się.

Używam XP. Biblioteka jest zainstalowana (php_printer.dll) a w php.ini jest "włączona".

Cytat
Może coś takiego:
  1. <?php
  2. $print = printer_open();
  3. printer_set_option($print, PRINTER_MODE, "RAW");
  4. printer_write($print, "Test druku");
  5. printer_close($print);
  6. ?>


Działa, ale drukarka nie drukuje sad.gif

Cytat
print_sub_1();


a co to jest, bo php nie zna tej funkcji sad.gif

a wywalając go i 2 inne pochodne nie działa.
.radex
Cytat(sniezny_wilk @ 5.06.2008, 14:04:11 ) *
PECL jest biblioteką


PECL jest *zbiorem* modułów.
dr_bonzo
Cytat
print_sub_1();
i inne

Zapewne te funckje "drukuja" czyli wrzucaja dane do $_SESSION['bufer'] ktory jest potem wysylany do drukarki [oczywiscie rozwiazanie - jak widac zupelnie nieczytelne]

Mozna to bylo napisac tak:
  1. <?php
  2. $buff = print_sub_1(); 
  3. $buff .= print_sub_2(); 
  4. $buff .= print_sub_3(); 
  5. //...
  6. printer_write($print, $buff);
  7. ?>

etc.
psoders
Automatyczne uruchamianie drukowania to ciekawa sprawa, ale można to zrobić bez php

za pomocą zdarzeń html i metody javascript

Przykład ze strony www.w3schools.com

  1. <script type="text/javascript">
  2. function printpage()
  3. {
  4. window.print()
  5. }
  6. </head>
  7. <input type="button" value="Print this page"onclick="printpage()" />
  8. </body>
  9. </html>

przetestowałem na FF, IE, Operze i Safari i o dziwo działa wszędzie biggrin.gif
.radex
Ale nie o to w tym chodzi. Chodzi o to, żeby wydrukować to na komputerze serwera, a nie klienta.
psoders
Cytat(radex_p @ 13.06.2008, 22:38:18 ) *
Ale nie o to w tym chodzi. Chodzi o to, żeby wydrukować to na komputerze serwera, a nie klienta.


Wybacz, źle zrozumiełem problem.... bo nie sprawdziłem działania printer_write
.radex
Niczego nie musiałeś sprawdzać. Wiesz zapewne, że PHP działa po stronie serwera, więc nie wydrukuje niczego po stronie klienta.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.