Ausgeben eines standardmäßigen Base64-codierten Streams in das PDF-Format (PHP)

Ich benutze die Royal Mail Shipping API, um gedruckte PDF-Etiketten zu generieren. Mein PHP SoapClient gibt eine gültige Antwort zurück (nur die erste Antwort wird angezeigt, da die gesamte Antwort riesig ist).

%PDF-1.7 %äãÏÒ 4 0 obj <> stream xœ endstream endobj 3 0 obj 8 endobj 9 0 obj <> stream xÚí]bì*¤Höýoübƒ¤Æ-q²É>ø%Íë‚ÔFÒ<1ÆoÌúÝú¯ý?1Æ%Èa9Ò4QÌ!}üŠ ÆãS€ZÿŸ2Mô¨H}üßÇcŒ˜Z´½\¡´üý’y©1Æø$¨RÓd°úø’ÆÄŒ1Ægð´ ¨Š'ª°Z¾MCF1Æ}¥/¨{d˜ZQ•†Þ7Æ_P¢õ‘ kjŒ1.J¦ê”ÕÑŽ©,ž‹1ÆãNÿÅIü{}L%üÄcŒÑS Þª€êÁI”ÀÅÃcŒcHÚsïuP5Ð4Æ .ê2¤mbŒ1vU¼vè:ž>Æ<´¾1ÆØTŠûfÓ¢œÆcTŒ³wGF1Æ 

Kann jemand die beste Methode vorschlagen, um dieses Base64-codierte PDF-Etikett korrekt zu konvertieren, damit ich es physisch in den Browser herunterladen kann. Der folgende Code lädt die PDF-Datei herunter, aber wenn ich versuche, diese zu öffnen, ist die Dateigröße immer 57 KB und ich erhalte die folgende Meldung in Acrobat Reader

"There was an error opening this document. The file is damaged and could not be repaired."

Mein Code lautet wie folgt:

$rm = new RoyalMailLabelRequest();
// provide shipment number, order tracking id, output format (e.g PDF/PNG)
$response = $rm->PrintLabel('TTT000358756GB', '276831601444829801', 'PDF');

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="doc-'.$document.'.pdf"');
$data = base64_decode($response);
file_put_contents('pdf/label.pdf', $data);
AKTUALISIERE

Wenn ich versuche, die dekodierte Antwort wiederzugeben, erhalte ich Folgendes ... ich bin nicht sicher, was mit dieser passiert .. seltsam.

$response = $rm->PrintLabel('TTT000358756GB', '276831601444829801', 'PDF');
$data = base64_decode($response);
echo $data;exit;

Echo'd $ data Antwort nachdem base64_decoded

<1uï(n?Ëzx-‡}üX¥µêÿV­x7œ¡×¬¶·š›

Ich habe auch die vollständige base64_encode-Antwort hinzugefügt, die von meinem Code hier im Pastebin zurückgegeben wird, wenn es jemandem hilft.http: //pastebin.com/JEtmRUR

Antworten auf die Frage(2)

Ihre Antwort auf die Frage