Ruwe data omzetten naar een PDF file
Ik ben aan het stoeien met ruwe data die ik moet zetten naar een leesbaar pdf bestand.
Voor het tonen van pdf bestanden (based on php) gebruik ik tcpdf (dit wordt nu eenmaal gebruikt in het systeem).
Nu krijg ik via een API ruwe data die ik moet omzetten naar een pdf bestand.
Die ruwe data staat vol met 98%DE%09%D4%F4%0Dj%E6X%EDe%9 achtige codering.
Hoe kan ik zo'n retrieve omzetten naar een pdf bestand, en nog beter hoe ik de ontvangen ruwe data direct op slaan op mijn server zodat ik later een echt pdf bestand kan aanroepen op basis van een uniek nummer.
Onderstaand stukje code had ik gevonden om daar (wanneer het werkt) de pdf mee op te slaan...
Je zou deze in eerste instantie rauw op kunnen slaan in je database. Dit lijkt mij sowieso een goede zaak in het kader van cachen van (remote) data. Ik weet trouwens niet of dat in dit geval een valide strategie is omdat ik niet weet wat voor data dit is.
Vervolgens zou je, als je weet wat voor brondata het is, deze om kunnen zetten naar een utf8 variant. Daarna kun je deze utf8 encoded (en hopelijk fatsoenlijk leesbare) data als uitgangspunt nemen voor het opstellen van je PDF-documenten (die waarschijnlijk ook gebruik maakt van UTF-8?).
Maar stap 1 is dus het identificeren van de (character) encoding van je brondata. Is hier documentatie van?
De rauwe data opslaan in de Database ga ik sowieso doen. Kan altijd nog van pas komen.
Ik heb het volgende in de api staan, en dat geeft dus met succes de rauwe data terug waaruit ik een pdf file moet gaan creeeren, maar hoe... een karige tot bijna geen documentatie.
Voor het tonen van een pdf (op basis van php, mysql) gebruik ik tcpdf en die gebruikt utf8.
Het stukje code wat mij de rauwe data:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$request = TARGET_SITE_API . 'retrieve-pdf/?' . $string . '&signature=' . $signature;
$result = file_get_contents($request);
$decode = json_decode($result, true);
// var_dump($decode);
/*
in de var_dump staat:
array(
'uniquenumber' => $consignment->uniquenumber,
'rawdata' => '%PDF........ ruwe data',
)
*/
file_put_contents('' . $decode['uniquenumber'] . '.pdf', $decode['rawdata']);
$result = file_get_contents($request);
$decode = json_decode($result, true);
// var_dump($decode);
/*
in de var_dump staat:
array(
'uniquenumber' => $consignment->uniquenumber,
'rawdata' => '%PDF........ ruwe data',
)
*/
file_put_contents('' . $decode['uniquenumber'] . '.pdf', $decode['rawdata']);
Dit is mogelijk al de binaire data van de PDF zelf? Maar waarom zou je dat dan JSON-encoded willen versturen o_O. Hm, wellicht om daar nog externe meta-data aan te hangen ofzo, maar het klinkt nogal vaag.
En ja, als die data al binaire PDF-meuk is wordt het wss een beetje lastig om dit weer uit je PDF te trekken.
of misschien ook niet
http://www.pdfparser.org . Kan nog van pas komen.
@Thomas; bedankt voor de link naar