PDF Download html2pdf
Pergunta
Estou usando a classe HTML2PDF para gerar PDF. No meu problema, ele gera pdf para o código HTML, mas não fornece a opção da caixa de diálogo para baixar esse PDF. Por favor, ajude meu cose está seguindo.
<?php
ob_start();
include(dirname(__FILE__).'/res/pdf_demo.php');
$content = ob_get_clean();
// conversion HTML => PDF
require_once(dirname(__FILE__).'/../html2pdf.class.php');
try
{
$html2pdf = new HTML2PDF('P','A4', 'fr', false, 'ISO-8859-15');
$html2pdf->pdf->SetDisplayMode('fullpage');
$html2pdf->writeHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output('pdf_demo.pdf');
}
catch(HTML2PDF_exception $e) { echo $e; }
?>
Solução
Para oferecer download do seu navegador, você precisa adicionar o cabeçalho para ser anexo ...
header("Content-Disposition: attachment; filename=sample.pdf");
Adicione o código acima no início da página e prossiga com a conversão HTML2PDF.
Outras dicas
A partir da documentação, saída do método
/**
* Send the document to a given destination: string, local file or browser.
* Dest can be :
* I : send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
* D : send to the browser and force a file download with the name given by name.
* F : save to a local server file with the name given by name.
* S : return the document as a string. name is ignored.
* FI: equivalent to F + I option
* FD: equivalent to F + D option
* true => I
* false => S
*
Mude esta linha $html2pdf->Output('pdf_demo.pdf');
para$html2pdf->Output('pdf_demo.pdf', 'D');
E forçará o navegador a baixar automaticamente o arquivo PDF.
Envie PDF para o navegador com um nome específico
$ html2pdf-> output ('document_name.pdf');
$ html2pdf-> output ('document_name.pdf', false);
$ html2pdf-> output ('document_name.pdf', '');
$ html2pdf-> output ('document_name.pdf', 'i');
Forçar o navegador a baixar o arquivo PDF com um nome específico
$ html2pdf-> output ('document_name.pdf', 'd');
Escreva o conteúdo de um arquivo PDF no servidor
Atenção, este escrito no seu servidor deve ser usado com cautela. Nenhuma verificação é feita sobre a existência do arquivo
$ html2pdf-> output ('diretório/filename_xxxx.pdf', 'f');
Recuperar o conteúdo do PDF e depois faça o que quiser
$ content_pdf = $ html2pdf-> output ('', true);
$ content_pdf = $ html2pdf-> output ('', 's');