Auf einen ePaper-Account kann per API zugegriffen werden. Diese Schnittstelle ermöglicht es komfortabel ePaper hochzuladen, zu rendern und zu publizieren. Dazu wird ein API-Key benötigt. Diese Dokumentation soll einen Einstieg in die Nutzung der API bieten. Der Zugriff auf die API erfolgt per SOAP. Unter der folgenden URL ist der Webservice mit WSDL beschrieben. Sie ist notwendig für die Implementation.
Das unten stehende Diagramm verdeutlicht den Ablauf der ePaper-Erstellung und der Interaktion mit der API. Die einzelnen Prozesse benötigen jeweils Bearbeitungszeit (Rendern, Publizieren). Daher ist es nicht möglich ein ePaper direkt dessen Erstellung zu publizieren. Prozesse können nur ausgeführt werden, wenn der vorangegangene fertig gestellt ist. Statusabfragen können jederzeit durchgeführt werden. Im Falle des Status 'ready' können weitere Abfragen ausgeführt werden. Die Dauer der einzelnen Prozesse variiert da diese abhängig von der Struktur und Größe des PDFs sind.
Aufruf erfolgt über REST oder SOAP.
Zunächst muss ein API Client initialisiert werden, um den Service zu nutzen.
$wsdl = 'http://epaper.1000grad.com/html/api/v2/epaper-wsdl'; //set wsdl url
$apikey = 'IHR API KEY'; //set apikey
$client = new SoapClient($wsdl, array()); //start create epaper
Im ersten Schritt muss ein PDF dem Service zugänglich gemacht werden. Dies erfolgt über ein Formular-Upload an folgende URL: http://epaper.1000grad.com/html/api/v2/pdf-upload. Dabei muss der Api-Key sowie das PDF-Dokument als Parameter gesendet werden, Parameter: apikey und file
Eine Möglichkeit den Upload zu implementieren bietet cURL. (php: cURL - Manual)
//url to upload a pdf document
$uploadUrl = 'http://epaper.1000grad.com/html/api/v2/pdf-upload';
$file = realpath('./document.pdf'); //path to your pdf file
//set post params for curl request
$postParams = array(
'file' => "@" . $file,
'apikey' => $apikey
);
$ch = curl_init(); //initialize a cURL session
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //response will return as string
curl_setopt($ch, CURLOPT_POST, 1); //request is send by POST
curl_setopt($ch, CURLOPT_URL, $uploadUrl); //set request url
curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams); //set the fields to send
$response = curl_exec($ch); //execute request
curl_close($ch); //close handler
$result = json_decode($response, true); //decode response as array
if (!$result) {
die('Error: Could not decode response!');
} elseif (!$result['success']) {
die('Error: '.$result['errors']['errorDesc']);
}
$pdfId = $result['pdfId']; //set pdfId to use in next steps
Nach einem erfolgreichem Upload erhalten Sie eine PDF ID, mit der Sie im nächsten Schritt ein ePaper anlegen können.
try {
$epaperId = $client->epaperCreateFromPdf($apikey, $pdfId);
} catch (SoapFault $e) {
die('Error: '.$e->getMessage());
}
echo 'ePaper created with ID: '.$epaperId; //end create epaper
//now start the render process
try {
$epaperId = $client->epaperStartRenderprocess($apikey, $epaperId);
} catch (SoapFault $e) {
die('Error: '.$e->getMessage());
}
echo 'Render process started, please wait...';
Nun verarbeitet der Service das PDF
und rendert es. Das Rendern benötigt je nach Größe (Seiten, Auflösung,
..) und Schwierigkeit (Anzahl der Objekte, …) unterschiedlich viel Zeit
(mehrere Minuten). Daher gibt es mit epaperGetStatusString($epaperId)
die Möglichkeit den Status des ePapers abzurufen. Sobald das ePaper
fertig ist, wird der Status auf 'ready' gesetzt. Nachdem das Rendern
beendet wurde, haben Sie die Möglichkeit die weiteren Funktionen zur
Bearbeitung aufzurufen.
$client = new SoapClient($wsdl, array());
$status = $client->epaperGetStatusString($apikey,$epaperId);
echo 'ePaper Status: '.$status;
Nachdem das ePaper erzeugt wurde, frühestens aber nach erfolgreichem Rendern, das wird durch den Status 'ready' signalisiert, kann es publiziert werden. Publiziert wird durch Aufruf von epaperPublish($epaperId). Der Vorgang des Publizieren benötigt auch etwas Zeit, jedoch bedeutend weniger als das Rendern des ePapers. Der Fortschritt kann auch hier mittels epaperGetStatusString($epaperId) abgefragt werden. Beim Publizieren wird die Zip - Datei für das ePaper erstellt. Diese enthält immer den aktuellen Bearbeitungsstand des ePaper zum Zeitpunkt der Erstellung.
$client = new SoapClient($wsdl, array());
try {
$client->epaperPublish($apikey, $epaperId);
} catch (SoapFault $e) {
die('Error: '.$e->getMessage());
}
echo 'ePaper is being published';
Beim Publizieren entstehen, in Abhängigkeit Ihres Vertrages Kosten, dass heißt für jedes publizierte ePaper wird eine Lizenz abgezogen. Erst wenn das ePaper fertig publiziert wurde kann es über die bereitgestellte URL herunter geladen, oder auf einen anderen FTP Server übertragen werden. Sie können nun wiederum den Status abfragen, und warten bis der Status gleich 'ready' ist.
Nachdem auch das Publizieren erfolgreich abgeschlossen wurde, ist es möglich die Zip-Datei des ePapers herunter zu laden. Die dafür benötigte Url lässt man sich wie folgt ermitteln:
$client = new SoapClient($wsdl, array());
try {
$url = $client->epaperGetZip($apikey, $epaperId);
} catch (SoapFault $e) {
die('Error: '.$e->getMessage());
}
echo 'Download ZIP from: '.$url;