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($chCURLOPT_URL,"http://css.netservis.cz/html2pdf/");
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS'user=' urlencode($user) . '&html=' urlencode($html) . '&sign=' $sign);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
$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: