Einleitung - Erste Schritte

Einleitung - Erste Schritte

Einleitung

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.

 



Erste Schritte

Aufruf erfolgt über REST oder SOAP.

Aufruf REST

Aufruf SOAP

Beispiel zur Erstellung eines ePapers über 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

PDF zum Server übertragen

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.

ePaper erstellen

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.


Weitere Verarbeitung

ePaper Status abfragen

$client = new SoapClient($wsdl, array());    
$status = $client->epaperGetStatusString($apikey,$epaperId);    
echo 'ePaper Status: '.$status;

ePaper publizieren

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.

ePaper downloaden

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;

    • Related Articles

    • Funktions Referenz

      Fehler werden im allgemeinen als SoapFault/Exception geworfen, so dass um jeden Aufruf ein entsprechender try AND catch Block gesetzt werden sollte. Der Fehler kann dann anhand Error-Message behandelt werden. Die Error-Message enspricht der Syntax ...
    • Fehlercodes Übersicht (SoapFaults/Exceptions)

      Allgemein 400 not implemented 401 access denied, apikey is not correct 403 forbidden 404 data not found 500 internal server error, no specified error from api 600 invalid parameters ePaper 1100 epaper not ready 1101 not enough transactions to publish ...
    • Ein Inhaltsverzeichnis aus der PDF Datei generieren

      Über das CMS ist es möglich, das Inhaltsverzeichnis eines ePapers direkt aus der PDF-Datei per Knopfdruck zu generieren. Dafür müssen in der PDF-Datei benannte Lesezeichen angelegt  sein. Haben Sie eine solche PDF-Datei hochgeladen, können Sie die ...
    • Die Download PDF austauschen

      Sowohl im Standard ePaper, als auch im ePaper Pro steht den Lesern Ihres ePaper die Option zur Verfügung, sich das PDF Dokument zu Ihrem ePaper herunter zu laden. Die geschieht über den Button Download, welcher Ihnen in der rechten oberen Ecke ...
    • Seiten im ePaper ersetzen

      Über die Seitenübersicht können Sie Seiten eines ePapers ersetzen. Klicken Sie dazu auf das Symbol “Seite ersetzen” in der Zeile der Seite, die Sie ersetzen möchten. Daraufhin öffnet sich das Dialogfenster “Seite ersetzen”. Durch einen Klick auf die ...