HTML2PDF od Honzy

Je to synchronní a maximálně simple řešení. Tj nasypeš tam URL nebo rovnou HTML a odpověd je výsledek - obsah PDF souboru. Aby to nemohl volat kdekdo, každý projekt dostane svýho uživatele a secret, přes který ty svoje požadavky podepisuje. Nehodi se na velký data, live volani atd. Když to zahltíš, budeš v lepším případě dlouho čekat. Běží to totiž na sociální VPSce s malinovým výkonem, co je určená původně na postcss, a ani to neřeší žádnou frontu ani nic podobného. Je to jen tupý request-response. Má dvě varianty volání:

Přes URL

Prostě tam pošleš URL, a počkáš si na pdf:

<?php

$url 
= 'https://www.seznam.cz/';
$user = 'klient'; //vygeneruje honza
$secret = '********************'; //vygeneruje honza

$sign = sha1($user . $url . $secret);

$requestUrl = 'http://css.netservis.cz/html2pdf/?user=' . urlencode($user) . '&sign=' . urlencode($sign) . '&url=' . urlencode($url);

$pdfContent = file_get_contents($requestUrl);

echo 
$pdfContent;

Přes HTML

Přes HTML je lepší to poslat POSTem, protože by se to HTML do GETu asi nevešlo. Ale jinak je to v pricipu úplně stejný.

<?php

$html 
= '<html> ..... </html>';
$user = 'klient'; //vygeneruje honza
$secret = '********************'; //vygeneruje honza

$sign = sha1($user . $html . $secret);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://css.netservis.cz/html2pdf/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'user=' . urlencode($user) . '&html=' . urlencode($html) . '&sign=' . $sign);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$pdfContent = curl_exec($ch);
curl_close($ch);

Do toho POSTu/GETu se dají nacpat ještě nějaké další nepovinné parametry, který se ale nijak nepromítají do podpisu: