Tengo un script php que genera un informe en formato pdf. Cuando vamos a guardar el documento en formato pdf, el nombre de archivo de Acrobat sugiere es report_pdf, desde el script php llamado report_pdf.php. Me gustaría dinámicamente el nombre del archivo pdf, así que no tendrá que escribir el nombre apropiado para el informe cada vez que me la guarde.

Preguntando en un grupo de noticias, alguien sugirió este, donde filename="July Report.pdf" es el nombre del informe

<?
header('Content-Type: application/pdf');
header('Content-disposition: filename="July Report.pdf"');

Pero no funciona. Que estoy haciendo mal, o este trabajo a todos? Es este un trabajo para el mod_rewrite?


Lo he intentado tanto

header('Content-disposition: inline; filename="July Report.pdf"');

y

header('Content-disposition: attachment; filename="July Report.pdf"');

( no al mismo tiempo ) y ni un trabajo para mí. Es este un problema con mi web host? Para este url, aquí está mi código:

<?
header('Content-disposition: inline; filename="July Report.pdf"');

//requires the R&OS pdf class
require_once('class.ezpdf.php');
require_once('class.pdf.php');

//make a new pdf object
$pdf = new Cpdf();
//select the font
$pdf->selectFont('./fonts/Helvetica');
$pdf->addText(30,400,30,'Hello World');
$pdf->stream();

?>
  • Si desea que el archivo a descargar (y no ampliable en el navegador) , agregar estos: header(‘Content-Transfer-Encoding: binario’); header(‘Content-Type: application/force-download’); de lo Contrario, usted debe incluir la línea header(‘Content-Type: application/pdf’) para que el navegador sepa cómo abrir el archivo.
  • También, usted puede ser que falte la longitud de contenido para el archivo – algunos de los navegadores de archivos abiertos correctamente sin esto y otros no. Para conseguir esto, el volcado de toda la salida en el buffer de salida, a continuación, imprimir los encabezados y especificar uno como ‘Content-Length:’la función strlen del búfer de salida*
  • Temporalmente comentario los php líneas de encabezado y ver el resultado. Que NO debe contener errores de php. Aplicar de nuevo los encabezados después de corregir los errores, si es así.
InformationsquelleAutor user151841 | 2010-01-06

5 Comentarios

  1. 50

    Tratar:

    header('Content-Disposition: attachment; filename="July Report.pdf"');

    o

    header('Content-Disposition: inline; filename="July Report.pdf"');

    Otra opción sería el uso de la $_SERVER['PATH_INFO'] a pasar su «Informe de julio.pdf» – un ejemplo de enlace podría ser:

    <a href="report_pdf.php/July%20Report.pdf?month=07">

    Que archivo es, de forma predeterminada para guardar como «Informe de julio.pdf» – y debe comportarse exactamente como el antiguo script php lo hizo, solo cambiar el código que produce el enlace al pdf.

    • He intentado, sin suerte 🙁 . Es un problema con mi web host?
    • Que href truco funcionó! Ahora, ¿qué %20 en el nombre de archivo cuando voy a guardar? 😉
  2. 3

    Basado en https://github.com/rospdf/pdf-php/raw/master/readme.pdf (Página 19)
    El flujo-método acepta un array como parámetro:

    stream([array options])
    Se utiliza para la salida, de esta forma se establecerá la necesaria encabezados y salida el código de pdf.
    Las opciones de la matriz puede utilizarse para establecer un número de cosas acerca de la salida:

    'Content-Disposition'=>'filename' establece el nombre de archivo, …

    Este código funciona bien para mí

    $ezOutput = $pdf->ezStream(array("Content-Disposition"=>"YourFileName.pdf"));

    En mi caso yo uso ezStream() pero creo que stream() debe dar el mismo resultado.

    • En realidad, la aceptaron no funciona para mí. Esto realmente funciona!! Por tanto, gracias!
  3. 1

    Por el nombre que aparece en el título de la pestaña en el navegador

    Tuve el mismo problema, luego me enteré de que la falta de metadatos dentro de mi .pdf.
    He utilizado una de las herramientas («debenu PDF tools» (herramientas) para editar pdf de la propiedad como autor, título, etc…
    Acabo de cambiar el título, desde el campo vacío para qué título quiero, cargar el nuevo pdf y ahora, con el mismo código, mismo guión que el navegador muestre el nombre correcto!

    Para el nombre de la u cuando pida para guardar el documento

    es lo que u especificar en la cabecera filename=

    • Ajuste el PDF título en los metadatos también corrige el nombre de archivo se muestra en la esquina superior izquierda de la visualización de la PDF en Chrome. Para aquellos que utilizan FPDF para generar dinámicamente archivos Pdf, utilice el $pdf->SetTitle('Your Title');. Gracias!
  4. 0

    Trató de quitar los espacios de nombre de archivo usando guiones? Así que, creo que su nombre debe ser así; filename=julio-Informe.pdf

Dejar respuesta

Please enter your comment!
Please enter your name here