Media-Services

Alvine Juno Dokumentation

Sie können Alvine Juno einfach und schnell ausprobieren!

Risikofrei und ohne weitere Kosten. Nehmen Sie die URL einer HTML-Rechnung oder eines anderen HTML-Dokument. Falls Sie kein Dokument zur Hand haben, nehmen Sie einfach die URL aus unserem Beispiel.

Astronaut studiert

API

Funktionsweise

Juno bietet eine REST-API mit zwei Funktionsweisen, der Capture-Endpunkt ../capture erstellt aus einer oder mehrerer Webseite ein PDF-Dokument. Der Convert-Endpunkt ../convert wandelt ein vorhandenes Dokument (Word, Excel, Powerpoint, Libreoffice, OpenOffice) in ein PDF um. Beide Endpunkte erwarten einen POST-Request mit einem JSON-Body.

Unten finden Sie zu den beiden Endpunkten die Beschreibung und Beispiele für die Integration von Juno in bestimmte Umgebung. Falls Sie Ihre bevorzugte Entwicklungsumgebung vermissen, so finden Sie in unserer Postman-Dokumentation viele weitere Beispiele. Mithilfe von Postman können Sie unsere API auch ganz ohne Entwicklungsumgebung testen.

Authentifizierung

Die Authentifizierung erfolgt über einen API-Schlüssel der im Header X-API-KEY gesendet werden muss. Für die Testphase muss der Wert EVALUATION mitgesendet werden.

Endpunkte

Über den Capture-Endpunkt ../capture/ lassen sich Webseiten in PDF-Dokumente umwandeln.

Aufruf

Alle Alvine-Cloud API Endpunkte sind in Postman dokumentiert.

Sie können die API direkt ausprobieren (externe Seite):

Environment

Die einzelnen API sind in Postman mit Platzhaltern angelegt. Die Platzhalter können über die Environment-Funktion gesetzt werden.

PlatzhalterWertBeschreibung
JUNO-APIVERSIONv1betaAktuell gültige Version der API
JUNO-URLhttps://juno.alvine.cloud/Die URL des Services
curl --location -g --request POST 'https://juno.alvine.cloud/api/v1beta/capture' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
    "page-size": "A4",
    "pages": [
        {
            "url": "https://www.alvine.cloud/"
        },
        {
            "url": "https://www.alvine.cloud/de/produkte/"
        }
    ]
}'
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://juno.alvine.cloud/api/v1beta/capture"
  method := "POST"

  payload := strings.NewReader(`{
    "page-size": "A4",
    "pages": [
        {
            "url": "https://www.alvine.cloud/"
        },
        {
            "url": "https://www.alvine.cloud/de/produkte/"
        }
    ]
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
        
var data = JSON.stringify({"page-size":"A4","pages":[{"url":"https://www.alvine.cloud/"},{"url":"https://www.alvine.cloud/de/produkte/"}]});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://juno.alvine.cloud/api/v1beta/capture");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");

xhr.send(data);
        
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://juno.alvine.cloud/api/v1beta/capture',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "page-size": "A4",
    "pages": [
        {
            "url": "https://www.alvine.cloud/"
        },
        {
            "url": "https://www.alvine.cloud/de/produkte/"
        }
    ]
}',
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

        
Antwort

Als Antwort auf eine Anfrage erhalten Sie im Erfolgsfall den Status-Code 200, den Header ContentType: application/pdf und im Body die Binärdaten des PDF-Dokuments.

Im Fehlerfall erhalten Sie einen Status-Code größer gleich 400, den Header ContentType: application/json und im Body ein JSON-Dokument mit weiteren Informationen zum Fehler.

Beispiel

In dem folgenden Beispiel werden die beiden HTML-Seiten https://www.schukai.com/ und https://www.schukai.com/de/verkaufen/ in ein DIN-A4 PDF gedruckt.

    
{
    "page-size": "A4",
    "dpi": 36,
    "orientation": "Portrait",
    "pages": [
        {
            "url": "https://www.schukai.com/",
            "zoom": 1.0,
            "print-media-type": true,
            "viewport-width": "1280x1024",
            "load-media-error-handling": "abort",
            "load-error-handling": "abort",
            "encoding": "utf-8",
            "auth": {
                "base-auth": {
                    "username": "name",
                    "password": "geheim"
                }
            }
        },
        {
            "url": "https://www.schukai.com/de/verkaufen/"
        }
    ],
    "margins": {
        "top": 5,
        "left": 5,
        "right": 5,
        "bottom": 5
    },
    "operators": {
        "smart-shrinking": true,
        "grayscale": true
    }
}    
    
Optionen

Nachfolgende finden Sie alle Optionen in der Übersicht.

FeldBeschreibungTypeGültige WertePflichtfeldStandard
pages.urlURL auf die gewünschte Webseite. Javascript wird während der Testphase nicht unterstützt.StringJa
page-size Größe der SeiteStringA4, A5, ...NeinA4
orientationAusrichtung auf Querformat (Landscape) oder Hochformat (Portrait)StringLandscape, PortraitNeinPortrait
dpiÄndert die DPIInteger1...Nein36
pages.zoomZoomfaktorFloat0.1...Nein1.0
pages.print-media-typeMediaquery @print anwendenBoolean true, falseNeintrue
pages.viewport-widthSetzt die Viewport-GrößeStringNein1280x1024
pages.load-media-error-handlingAbbruch (abort) oder ignorieren (ignore), wenn Bilder oder CSS fehlenStringabort, ignoreNeinabort
pages.load-error-handlingAbbruch (abort) oder ignorieren (ignore), wenn die Url nicht gefunden wirdString abort, ignoreNeinabort
pages.encodingStandard-EncodingStringutf-8, is-8859-1, ...Neinutf-8
pages.auth.base-auth.username
pages.auth.base-auth.password
Anmeldung mit Base-Auth
Benutzername und Passwort
StringNein
pages.auth.cookie.name
pages.auth.cookie.credential
Anmeldung mit Session-Cookie
Name des Cookies und SessionID
StringNein
margins.top
margins.bottom
margins.left
margins.right
Abstand zum RandIntegerNein5
operators.smart-shrinkingIntelligentes einpassen der Webseite in das PDF FormatBooleantrue, falseNeintrue
operators.grayscaleGraufilter anwendenBooleantrue, falseNeintrue

Über den Convert-Endpunkt ../convert lassen sich Office-Dokumente (Word, Excel, Powerpoint, Libreoffice, OpenOffice) in PDF-Dokumente umwandeln.

Aufruf

Alle Alvine-Cloud API Endpunkte sind in Postman dokumentiert.

Sie können die API direkt ausprobieren (externe Seite):

Environment

Die einzelnen API sind in Postman mit Platzhaltern angelegt. Die Platzhalter können über die Environment-Funktion gesetzt werden.

PlatzhalterWertBeschreibung
JUNO-APIVERSIONv1betaAktuell gültige Version der API
JUNO-URLhttps://juno.alvine.cloud/Die URL des Services
curl --location --request POST 'https://juno.alvine.cloud/api/v1beta/convert' \
--header 'Accept: application/json' \
--header 'x-api-key: EVALUATION' \
--header 'Content-Type: application/json' \
--data-raw '{
    "url": "https://www.alvine.cloud/examples/welcome.docx"
}'
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://juno.alvine.cloud/api/v1beta/convert"
  method := "POST"

  payload := strings.NewReader(`{
    "url": "https://www.alvine.cloud/examples/welcome.docx"
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("x-api-key", "EVALUATION")
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
        
var data = JSON.stringify({"url":"https://www.alvine.cloud/examples/welcome.docx"});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://juno.alvine.cloud/api/v1beta/convert");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("x-api-key", "EVALUATION");
xhr.setRequestHeader("Content-Type", "application/json");

xhr.send(data);
        
 'https://juno.alvine.cloud/api/v1beta/convert',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "url": "https://www.alvine.cloud/examples/welcome.docx"
}',
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'x-api-key: EVALUATION',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


        
Antwort

Als Antwort auf eine Anfrage erhalten Sie im Erfolgsfall den Status-Code 200, den Header ContentType: application/pdf und im Body die Binärdaten des PDF-Dokuments.

Im Fehlerfall erhalten Sie einen Status-Code größer gleich 400, den Header ContentType: application/json und im Body ein JSON-Dokument mit weiteren Informationen zum Fehler.

Beispiel

In dem folgenden Beispiel wird die URL https://www.alvine.cloud/examples/welcome.docx in ein PDF Dokument umgewandelt.

    
{
    "url": "https://www.alvine.cloud/examples/welcome.docx"
}
    
Optionen

Nachfolgende finden Sie alle Optionen in der Übersicht.

FeldBeschreibungTypeGültige WertePflichtfeldStandard
urlURL auf das umzuwandelnde Dokument.StringJa

Damit keine Fragen offen bleiben

Wir sind für Sie da und bieten Ihnen den perfekten Service. Profitieren Sie von unserer Erfahrung, innovativen Lösungen und einer Betreuung, die sich allein an Ihren Bedürfnissen orientiert.

Unsere Kontaktdaten & Chat

Wir freuen uns auf Sie.