Erstellen Sie eine PDF-Datei von Java nach PHP

Ich besitze einen WebService in Java (unter Verwendung von Apache Axis), der die ID eines Dokuments abruft und JasperReports aufruft, um eine PDF-Datei (Bericht, der zuvor in Java App-Server erstellt wurde) zu erstellen und den Bericht mithilfe der Methoden zu erstellen : JasperManager.fillReport und JasperExportManager.exportReportToPdf. Der letzte gibt ein Array von Bytes zurück. Mein Webservice nimmt das Array und codiert es in einen Base64-String. PHP empfängt diesen String als Antwort vom WebService.

Ich möchte die Datei in PHP neu erstellen, weiß aber nicht genau, ob dies möglich ist. Ich versuche dies mit dem folgenden Snippet zu tun:

private function createFileFromString($stringWithFile){
    header('Content-Description: File Transfer');
    header("Content-Type: application/pdf");
    header('Content-Disposition: attachment; filename=remesa.pdf');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    ob_start();
    ob_clean();
    ob_flush();
    flush();
    $fp = file_put_contents("document.pdf", "w");
    fwrite($fp, base64_decode($stringWithFile));
    readfile($fp);
    ob_get_contents();
    fclose($fp);
    exit();
}

Der WebService gibt einen String wie diesen zurück:

JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9UeXBlL1hPYmplY3QvQ29sb3JTcGFjZS9EZXZpY2VS R0IvU3VidHlwZS9JbWFnZS9CaXRzUGVyQ29tcG9uZW50IDgvV2lkdGggMjg0L0xlbmd0aCAzNjc0 L0hlaWdodCA1MC9GaWx0ZXIvRENURGVjb2RlPj5zdHJlYW0K / 9j / 4AAQSkZJRgABAgAAAQABAAD / 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0 Hyc5PTgyPC4zNDL / 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL / wAARCAAyARwDASIAAhEBAxEB / 8QAHwAAAQUBAQEBAQEA ...

Diese Zeichenfolge hat den "PDF-Header" und beginnt folgendermaßen:

% PDF-1.4% âãÏÓ 4 0 obj <> stream ÿØÿà

Wenn ich versuche, die Datei herunterzuladen, ist sie ungefähr 4-5 KB groß (und die Datei ist beschädigt), aber die Antwortzeichenfolge ist ungefähr 180 KB groß.

Ist das möglich? Was mache ich falsch?

EDIT: Ich habe darüber gelesenauspacken Funktion, kann mir diese Funktion vielleicht helfen?

Danke im Voraus

Antworten auf die Frage(1)

Ihre Antwort auf die Frage