Recrear un archivo PDF desde Java a PHP
Tengo un servicio web en Java (usando Apache Axis) que tiene el ID de un documento y esta llamada a JasperReports para crear un archivo PDF (informe creado anteriormente en la aplicación java - servidor), para crear el informe, estoy usando los métodos. : JasperManager.fillReport y JasperExportManager.exportReportToPdf. El último devuelve una matriz de bytes. Mi servicio web toma la matriz y la codifica en una Cadena Base64, PHP recibe esta cadena como respuesta del Servicio Web.
Quiero volver a crear el archivo en PHP, pero no sé exactamente si esto es posible. Estoy tratando de hacer esto con el siguiente fragmento de código:
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();
}
El servicio web devuelve una cadena como esta:
JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9UeXBlL1hPYmplY3QvQ29sb3JTcGFjZS9EZXZpY2VS R0IvU3VidHlwZS9JbWFnZS9CaXRzUGVyQ29tcG9uZW50IDgvV2lkdGggMjg0L0xlbmd0aCAzNjc0 L0hlaWdodCA1MC9GaWx0ZXIvRENURGVjb2RlPj5zdHJlYW0K / 9J / 4AAQSkZJRgABAgAAAQABAAD / 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0 Hyc5PTgyPC4zNDL / 2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL / wAARCAAyARwDASIAAhEBAxEB / 8QAHwAAAQUBAQEBAQEA ...
Esta cadena tiene el "Encabezado de PDF", comienza así:
% PDF-1.4% âãÏÓ 4 0 obj <> stream ÿØÿà
Cuando intento descargar el archivo, su tamaño es de aproximadamente 4-5 KB (y el archivo está dañado), pero la cadena de respuesta es de aproximadamente 180 KB.
es posible? ¿Qué estoy haciendo mal?
EDITAR: He leído sobredeshacer función, tal vez esta función me puede ayudar?
Gracias por adelantado