Script zum checken von Druckdaten
Xen
- programmiertechnik
0 Xen
Hallo SELFHTML-Gemeinde,
ich habe ein Script gefunden, dass schön funktioniert um PDF, JPG, TIFF-Dateien zu prüfen auf Druckqualität. Um dieses voll zu verwenden muss man einen file-upload auf eigenem webspace einrichten (bei Hersteller is max. file-size 2MB).
Nun ist in dem Script folgendes geschrieben (printcheck.php):
<?php
// Dieses Programm geht davon aus, dass sich die zu prüfende Datei
// bereits auf dem Server befindet. Die Variable $link muss so gesetzt
// werden, dass die zu prüfende Datei dadurch von aussen per HTTP-GET
// abgerufen werden kann.
// Beispiel: $link = "http://www.ihrwebserver.de/temp/datei.pdf";
// Aufruf der Funktion falls zur Prüfung und Bearbeitung einer PDF-Datei
$resultArray = soapClassPdf($link);
// Aufruf der Funktion falls zur Prüfung und Bearbeitung einer Bilddatei
$resultArray = soapClassImage($link);
// ==========================================================================
//Soap Klasse wird aufgerufen für PDF spezialisiert
function soapClassPdf($link){
// Einbindung der NuSOAP-Klasse
// http://www.nusphere.com
require_once 'includes/nusoap.php';
$returnArray = array();
$nusoapclient = new soapclient('http://soap.printcheck.info/wsdl/pdfFunctions.wsdl', true);
$soapErr = $nusoapclient->getError();
if (!$soapErr) {
// Hier wird eine Session erstellt. Dazu werden die Zugangsdaten von Leadprint benötigt.
$param = array('username' => 'IHR BENUTZERNAME', 'userpasswd' => 'IHR PASSWORT');
$sessionData = $nusoapclient->call('initSession', $param, '', '', false, true);
$jobTicket = $sessionData[ 'jobTicket' ];
$returnArray['jobTicket'] = $jobTicket;
//upload File
$param = array('jobTicket' => $jobTicket, 'link' => $link);
$result_upload_file = $nusoapclient->call('uploadFile', $param, '', '', false, true);
$fileTicket = $result_upload_file[ 'fileTicket' ];
$returnArray['fileTicket'] = $fileTicket;
$returnArray['errorcode']['uploadFile'] = $result_upload_file['errorcode'];
// Holen der wichtigsten PDF Daten
$param = array('jobTicket' => $jobTicket, 'fileTicket' => $fileTicket ,'page' => 1, 'box' => 'crop');
$result_pdf_data = $nusoapclient->call('getPdfData', $param, '', '', false, true);
$returnArray['getPdfData']['width'] = $result_pdf_data['width'];
$returnArray['getPdfData']['height'] = $result_pdf_data['height'];
$returnArray['getPdfData']['pages'] = $result_pdf_data['pages'];
$returnArray['getPdfData']['version'] = $result_pdf_data['version'];
$returnArray['getPdfData']['rotate'] = $result_pdf_data['rotate'];
$returnArray['getPdfData']['title'] = $result_pdf_data['tilte'];
$returnArray['getPdfData']['creator'] = $result_pdf_data['creator'];
$returnArray['getPdfData']['subject'] = $result_pdf_data['subject'];
$returnArray['errorcode']['getPdfData'] = $result_pdf_data['errorcode'];
// Konvertieren, Bereinigen und Anfügen eines Beschnittrandes zur hochgeladenen Datei
$param = array('jobTicket' => $jobTicket, 'fileTicket' => $fileTicket ,'version' => 14, 'chop' => 1);
$result_convert_pdf = $nusoapclient->call('convertPdf', $param, '', '', false, true);
$newFileTicket = $result_convert_pdf[ 'fileTicket' ];
$returnArray['errorcode']['convertPdf'] = $result_convert_pdf['errorcode'];
$returnArray['convertPdf']['fileticket'] = $result_convert_pdf[ 'fileTicket' ];
$returnArray['convertPdf']['link'] = $result_convert_pdf[ 'link' ];
$param = array('jobTicket' => $jobTicket, 'fileTicket' => $newFileTicket ,'page' => 1, 'box' => 'crop');
$result_pdf_data_convert = $nusoapclient->call('getPdfData', $param, '', '', false, true);
$returnArray['errorcode']['getPdfDataFromConvert'] = $result_pdf_data_convert['errorcode'];
$returnArray['getPdfDataFromConvert']['width'] = $result_pdf_data_convert['width'];
$returnArray['getPdfDataFromConvert']['height'] = $result_pdf_data_convert['height'];
$returnArray['getPdfDataFromConvert']['pages'] = $result_pdf_data_convert['pages'];
$returnArray['getPdfDataFromConvert']['version'] = $result_pdf_data_convert['version'];
$returnArray['getPdfDataFromConvert']['rotate'] = $result_pdf_data_convert['rotate'];
$returnArray['getPdfDataFromConvert']['title'] = $result_pdf_data_convert['tilte'];
$returnArray['getPdfDataFromConvert']['subject'] = $result_pdf_data_convert['subject'];
$returnArray['getPdfDataFromConvert']['width'] = $result_pdf_data_convert['width'];
// Überprüfen des hochgeladenen PDF
$param = array('jobTicket' => $jobTicket, 'fileTicket' => $fileTicket ,'dpi' => 300);
$result_check_pdf = $nusoapclient->call('checkPdf', $param, '', '', false, true);
$returnArray['errorcode']['checkPdf'] = $result_check_pdf['errorcode'];
$returnArray['checkPdf']['link'] = $result_check_pdf['link'];
if(!empty($returnArray['checkPdf']['link'])){
$handle = fopen ($returnArray['checkPdf']['link'], 'r');
$contents = fgets ($handle);
fclose ($handle);
$logarray = unserialize($contents);
if(!empty($logarray['SPOT COLORS'])){
while (list ($key, $val) = each ($logarray['SPOT COLORS'])) {
$returnArray['Spotcolors'][$key] = $val;
}
}
if(!empty($logarray['WARNINGS'])){
while (list ($key, $val) = each ($logarray['WARNINGS'])) {
$returnArray['errorcode']['logdatei'][$key] = $val;
}
}
if(!empty($logarray['FONTS'])){
while (list ($key, $val) = each ($logarray['FONTS'])) {
$returnArray['Fonts'][$key] = $val;
}
}
}
// Erstellen einer Vorschaugrafik für die erste Seite des hochgeladenen PDF mit Größe 150x150
$param = array( 'jobTicket' => $jobTicket,
'fileTicket' => $fileTicket,
'imagetype' => 'jpeg',
'width' => 150,
'height' => 150,
'dpi' => 100,
'firstpage' => 1,
'lastpage' => 1);
$result_image_pdf_small = $nusoapclient->call('createImageFromPdf', $param, '', '', false, true);
$imageFileTicketUpload = $result_image_pdf_small[ 'fileTicket' ];
#$returnArray['errorcode']['createImageFromPdfSmall'] = $result_image_pdf_small['errorcode'];
$returnArray['createImageFromPdfSmall']['page'] = $result_image_pdf_small['page'];
$returnArray['createImageFromPdfSmall']['fileTicket'] = $result_image_pdf_small['fileTicket'];
$returnArray['createImageFromPdfSmall']['link'] = $result_image_pdf_small['link'];
// Erstellen einer Vorschaugrafik für die erste Seite des hochgeladenen PDF mit Größe 300x300
$param = array( 'jobTicket' => $jobTicket,
'fileTicket' => $fileTicket,
'imagetype' => 'jpeg',
'width' => 300,
'height' => 300,
'dpi' => 100,
'firstpage' => 1,
'lastpage' => 1);
$result_image_pdf_big = $nusoapclient->call('createImageFromPdf', $param, '', '', false, true);
$imageFileTicketUpload = $result_image_pdf_big[ 'fileTicket' ];
#$returnArray['errorcode']['createImageFromPdfBig'] = $result_image_pdf_big['errorcode'];
$returnArray['createImageFromPdfBig']['page'] = $result_image_pdf_big['page'];
$returnArray['createImageFromPdfBig']['fileTicket'] = $result_image_pdf_big['fileTicket'];
$returnArray['createImageFromPdfBig']['link'] = $result_image_pdf_big['link'];
return($returnArray);
}
}
//Soap Klasse wird aufgerufen für Bilder spezialisiert
function soapClassImage($link){
// Einbindung der NuSOAP-Klasse
// http://www.nusphere.com
require_once 'includes/nusoap.php';
$returnArray = array();
$nusoapclient = new soapclient('http://soap.printcheck.info/wsdl/pdfFunctions.wsdl', true);
$soapErr = $nusoapclient->getError();
if (!$soapErr) {
// Hier wird eine Session erstellt. Dazu werden die Zugangsdaten von Leadprint benötigt.
$param = array('username' => 'IHR BENUTZERNAME', 'userpasswd' => 'IHR PASSWORT');
$sessionData = $nusoapclient->call('initSession', $param, '', '', false, true);
$jobTicket = $sessionData[ 'jobTicket' ];
$returnArray['jobTicket'] = $jobTicket;
//upload File
$param = array('jobTicket' => $jobTicket, 'link' => $link);
$result_upload_file = $nusoapclient->call('uploadFile', $param, '', '', false, true);
$fileTicket = $result_upload_file[ 'fileTicket' ];
$returnArray['fileTicket'] = $fileTicket;
$returnArray['errorcode']['uploadFile'] = $result_upload_file['errorcode'];
// Holen der wichtigsten Daten zur gerade erstellen Vorschaugrafik
$param = array('jobTicket' => $jobTicket, 'fileTicket' => $fileTicket);
$result_image_data = $nusoapclient->call('getImageData', $param, '', '', false, true);
if($result_image_data['jpegcolorspace'] != 2 && $result_image_data['colorspace'] == "rgb"){
$returnArray['errorcode']['RGB'] = "RGB";
}
if($result_image_data['colorspace'] == "rgb"){
$returnArray['errorcode']['Colorspace RGB'] = "Colorspace RGB";
}
if($result_image_data['jpegcolorspace'] == 1){
$returnArray['errorcode']['Colorspace grau'] = "Colorspace grau";
}
if($result_image_data['colorspace'] == "lab"){
$returnArray['errorcode']['Colorspace lab'] = "Colorspace lab";
}
if($result_image_data['compression'] == "lzw"){
$returnArray['errorcode']['Colorspace LZW'] = "Colorspace LZW";
}
if($result_image_data['quality'] < 70){
$returnArray['errorcode']['quality'] = "quality";
}
if(substr($result_image_data['dpi'], (strpos($result_image_data['dpi'], "x") + 1)) < 300){
$returnArray['errorcode']['DPI'] = "DPI";
}
$returnArray['errorcode']['getImageData'] = $result_image_data['errorcode'];
$returnArray['getImageData']['imagetype'] = $result_image_data['imagetype'];
$returnArray['getImageData']['width'] = $result_image_data['width'];
$returnArray['getImageData']['height'] = $result_image_data['hight'];
$returnArray['getImageData']['colorspace'] = $result_image_data['colorspace'];
$returnArray['getImageData']['dpi'] = $result_image_data['dpi'];
$returnArray['getImageData']['geometry'] = $result_image_data['geometry'];
$returnArray['getImageData']['filesize'] = $result_image_data['filesize'];
$returnArray['getImageData']['compression'] = $result_image_data['compression'];
$returnArray['getImageData']['quality'] = $result_image_data['quality'];
$returnArray['getImageData']['jpegcolorspace'] = $result_image_data['jpegcolorspace'];
$returnArray['getImageData']['signature'] = $result_image_data['signature'];
// Erstellen einer Vorschaugrafik für die erste Seite des hochgeladenen PDF mit size 150x150
$param = array( 'jobTicket' => $jobTicket,
'fileTicket' => $fileTicket,
'imagetype' => 'jpeg',
'colorspace' => 'rgb',
'quality' => 100,
'width' => 150,
'height' => 150,
'dpi' => 100);
$result_image_small = $nusoapclient->call('createImageFromImage', $param, '', '', false, true);
$imageFileTicketUpload = $result_image_small[ 'fileTicket' ];
$returnArray['createImageFromImageSmall']['fileTicket'] = $result_image_small['fileTicket'];
$returnArray['createImageFromImageSmall']['link'] = $result_image_small['link'];
// Erstellen einer Vorschaugrafik für die erste Seite des hochgeladenen PDF mit size 300x300
$param = array( 'jobTicket' => $jobTicket,
'fileTicket' => $fileTicket,
'imagetype' => 'jpeg',
'colorspace' => 'rgb',
'quality' => 100,
'width' => 300,
'height' => 300,
'dpi' => 100);
$result_image_big = $nusoapclient->call('createImageFromImage', $param, '', '', false, true);
$imageFileTicketUpload = $result_image_big[ 'fileTicket' ];
$returnArray['createImageFromImageBig']['fileTicket'] = $result_image_big['fileTicket'];
$returnArray['createImageFromImageBig']['link'] = $result_image_big['link'];
return($returnArray);
}
}
?>
Hier gehts weiter...
Nun dachte ich brauche ich ein File-Upload Script (upload.php) - denke ich zumindest:
<?php
$target = "upload/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
//This is our size condition
if ($uploaded_size > 15728640)
{
echo "Your file is too large.<br>";
$ok=0;
}
//This is our limit file type condition
if (!($uploaded_type=="image/jpeg" || $uploaded_type=="image/tiff" || $uploaded_type=="application/pdf")) {
echo "You may only upload JPG, TIFF and PDF files.<br>";
$ok=0;
}
//Here we check that $ok was not set to 0 by an error
if ($ok==0)
{
Echo "Sorry your file was not uploaded";
}
//If everything is ok we try to upload it
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file.";
}
}
?>
Nun ist die Frage wie ich die hochgeladene Datei an printcheck.php weiterzuleiten. Mit dem Hinweis am Anfang der Printcheck.php kann ich relativ wenig anfangen (GET weiterleiten).
Zudem ist in dieser Datei auch noch verweise zu www.nusphere.com damit komme leider auch nicht weiter.
Vll könnt ihr mir weiterhelfen.
Im vorraus vielen Dank