skrypt / sprawdzający czy plik pdf ze stronki jest drukowany

0

jest coś takiego????
http://us3.php.net/manual/en/function.printer-open.php

może któraś z tych funkcji ali mi nie chodzą na webserv 2.0

0
<?php

 $nr = $_POST["nr"];



require_once 'nazwadb.inc.php';
require_once 'walidacja.inc.php';

if (isset($_GET['nr'])) {
    $nr = $_GET['nr'];
    $nr = trim(strip_tags($nr));
    $nr = mysql_escape_string($nr);
    if (!ivpi($nr)) {
        unset($nr);
    }
}


if (isset($nr)) {
    $link = mysql_connect("$host", "$root","$haslo")
        or die ("BŁĄD: nie można się połączyć z serverem mySQL");
    mysql_select_db($nazwabazydanych)
        or die ("BŁĄD: wybór bazy danych");

    $result = mysql_query("SELECT pdf FROM pliki WHERE id_plik=$nr");
    $wiersz   = mysql_fetch_array($result);
    
	header("Cache-Control: no-cache, must-revalidate");

	header("Content-type: application/pdf");
 
 
 readfile  ($wiersz['pdf']);


 $handle = printer_open("hp LaserJet 1300 PCL 6");
if($handle==false)
 {
 
 echo"False"; 
 }
 else{ 
 
$sql = "UPDATE pliki SET `flaga` = '".$_POST['B2']."' WHERE `id_plik` = '".$_POST['nr']."'";


$result=mysql_query($sql);
}

mysql_close($link);

}
?>

nie chodzi :( wrzuca ciągle true
chodzi o to żeby jak kliknę drukuj w bazie zapisywała się flaga = 1

0

Co nie chodzi? Wszystko bangla:
true = działa drukarka
false = nie działa

0

ale mi chodzi że po wysłaniu do niej danych było true
a nie że działa :(

0

To po printer_open dopisz sobie funkcję która sprawdza status (przeglądnij na php.net co oferuje rozszerzenie 'printer')! Ten skrypt ma tylko otwierać połączenie z drukarką.

0
<?php
  
  
  $nr = $_POST["nr"];

require_once 'walidacja.inc.php';
require_once 'nazwadb.inc.php';

if (isset($_GET['nr'])) {
    $nr = $_GET['nr'];
    $nr = trim(strip_tags($nr));
    $nr = mysql_escape_string($nr);
    if (!ivpi($nr)) {
        unset($nr);
    }
}

if (isset($nr)) {
    $link = mysql_connect("$host", "$root","$haslo")
        or die ("BŁĄD: nie można się połączyć z serverem mySQL");
    mysql_select_db($nazwabazydanych)
        or die ("BŁĄD: wybór bazy danych");

    $result = mysql_query("SELECT pdf FROM pliki WHERE id_plik=$nr");
    $wiersz   = mysql_fetch_array($result);
 

	header("Cache-Control: no-cache, must-revalidate");

	header("Content-type: application/pdf");
//readfile ($wiersz['pdf']) ;
    
    $handle = printer_open();


 printer_start_doc($handle,  readfile($wiersz['pdf']));
printer_start_page($handle);

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

    
    


if(isset($wiersz['pdf']))
 {
	
$sql = "UPDATE pliki SET `flaga` = '".$_POST['B2']."' WHERE `id_plik` = '".$_POST['nr']."'";
	
$result=mysql_query($sql);	
};
}
	
	mysql_close($link);

?>

zrobiłem tak żeby tylko po sprawdzało czy $wiersz istnieje działa a le jest kolejny problem
drukuje mi się pusty dokument :
printer_start_doc($handle, readfile($wiersz['pdf']));
nie działa choć wyświetla tekst natomiast działa do "czystego tekstu"
??

0

ReadFile = File_Get_Contents + Echo

Użyj file_get_contents!

0

lipa te funkcje drukują tylko czysty tekst
chyba tak nie darady :((

0
<?php
 
 
  $nr = $_POST["nr"];

require_once 'walidacja.inc.php';
require_once 'nazwadb.inc.php';

if (isset($_GET['nr'])) {
    $nr = $_GET['nr'];
    $nr = trim(strip_tags($nr));
    $nr = mysql_escape_string($nr);
    if (!ivpi($nr)) {
        unset($nr);
    }
}

if (isset($nr)) {
    $link = mysql_connect("$host", "$root","$haslo")
        or die ("BŁĄD: nie można się połączyć z serverem mySQL");
    mysql_select_db($nazwabazydanych)
        or die ("BŁĄD: wybór bazy danych");

    $result = mysql_query("SELECT pdf FROM pliki WHERE id_plik=$nr");
    $wiersz   = mysql_fetch_array($result);
 

        header("Cache-Control: no-cache, must-revalidate");

        header("Content-type: application/pdf");
//readfile ($wiersz['pdf']) ;
   
    $handle = printer_open();

$dane = file_get_contents($wiersz['pdf']);
print $dane;
 printer_write($handle, $dane);

printer_close($handle);

   
   


if(isset($wiersz['pdf']))
 {
       
$sql = "UPDATE pliki SET `flaga` = '".$_POST['B2']."' WHERE `id_plik` = '".$_POST['nr']."'";
       
$result=mysql_query($sql);       
};
}
       
        mysql_close($link);

drukuje same krzaki też źle

0

Da radę. Tylko ustaw kodowanie i dowiedz się jakiego używa twoja drukarka.

@n
Ja na prawdę mam zaćmienie. Nawet o tym nie pomyślałem oO

0

Musiałbyś chyba przetworzyć dane binarne pdf'a na format akceptowany przez drukarki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1