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);
}
}
?>