SOAP Schnittstelle

Die WSDL Definition des SOAP WebServices von HTML2PDF erhalten Sie über diese URI:

http://online.htmltopdf.de/?WSDL

Der WebService exportiert die Methoden CreatePDF und CreatePDF2, die Sie mit diesen Parametern aufrufen:

$url

Die URL der zu konvertierenden Webseite als maximal 4096 Zeichen langer String. Die URL muss zwingend mit http oder https beginnen – andere Protokolle werden zur Zeit nicht unterstützt.

$license

Falls vorhanden, der Lizenzschlüssel als String. Ansonsten eine leere Zeichenkette oder NULL.

$header

Falls ein Lizenzschlüssel vorhanden ist, kann hier ein individueller Text definiert werden, der im Kopf jeder Seite des PDF sichtbar sein soll. Ohne Lizenz steht dort ein Hinweis auf diesen HTML2PDF WebService. Ist keine Lizenz vorhanden, sollte eine leere Zeichenkette oder NULL übergeben werden.

$orientation

Übergeben Sie „Portrait“ oder „Landscape“, um die Seitenausrichtung zu bestimmen.

$background

Übergeben Sie „1“ oder „0“, um die Verarbeitung von Hintergrundfarben und -bildern ein-/auszuschalten.

$print

Übergeben Sie „1“ oder „0“, um die Verarbeitung von CSS für Print-Medien ein-/auszuschalten.

Rückgabe

Der WebService liefert im Erfolgsfall die mit base64 codierten Daten der PDF Datei als String. Im Fehlerfall liefert die Methode auch NULL oder wirft eine SoapFault Exception.

Programmierbeispiel C#

Binden Sie zunächst einen Webverweis auf den HTML2PDF WebService in Ihr C# Projekt ein (nutzen Sie die URI zum WSDL, wie am Anfang dieser Seite beschrieben). Sofern Sie als Namespace für den Webdienst „de.wan24.html2pdf“ verwenden, können Sie die Methode CreatePDF so in Ihrem C# Code verwenden:

using System;
using System.Security.Cryptography;
using System.Text;

namespace wan24
{
    public static class HTML2PDF
    {
        static HTML2PDF()
        {
            License = null;
        }

        public static string License { get; set; }

        public static byte[] CreatePDF(string url)
        {
            return CreatePDF(url, "", "Portrait", true, false);
        }

        public static byte[] CreatePDF(string url, string header, string orientation, bool background, bool print)
        {
            string license = License;
            if (license != null && license != "")
            {
                StringBuilder temp = new StringBuilder();
                foreach (byte b in SHA1.Create().ComputeHash(Encoding.Default.GetBytes(url + license)))
                    temp.Append(String.Format("{0:x2}", b));
                license = temp.ToString();
            }
            using (de.wan24.html2pdf.Html2PdfService service = new de.wan24.html2pdf.Html2PdfService())
            {
                return Convert.FromBase64String(service.CreatePDF2(url, license, header, orientation, (background)?"1":"0", (print)?"1":"0"));
            }
        }
    }
}

Die statische Klasse HTML2PDF kann nun überall so verwendet werden:

            wan24.HTML2PDF.License = "";// Hier den Lizenzschlüssel eingeben, falls vorhanden
            // PDF erzeugen und in die Datei "demo.pdf" schreiben
            File.WriteAllBytes("demo.pdf", wan24.HTML2PDF.CreatePDF("http://wan24.de"));