como converter múltiplos arquivos html com o Dompdf?

O que estou fazendo:

Estou usando uma biblioteca PHP chamada Dompdf para converter meu arquivo HTML em PDF. Eu consegui converter um único arquivo HTML em PDF.

O que estou tentando fazer:

Agora eu tenho vários relatórios que eu quero convertê-los em arquivo PDF.

O que estou fazendo:

Eu tenho um exemplo aqui em que eu estou obtendo um formulário de database e outro por visualização direta.

Código:

 $result['patients'] = $this->reports_model->get_xray_reports($id); // getting form from database require_once "dompdf/dompdf_config.inc.php"; // include dompdf $dompdf = new DOMPDF(); $dompdf->set_paper("A4"); $html = $this->load->view('wilcare/form_set_page_15',"",true);// loading direct from view //this file is not converting $html = $this->load->view('wilcare/report1',$result,true);//loading from db $dompdf->load_html($html) $dompdf->render(); $dompdf->stream("hello.pdf",array('Attachment'=>0)); 

Problema

É apenas a conversão de um arquivo.

Eu também tentei isso:

  $html = $this->load->view('wilcare/form_set_page_15',"",true); $html1 = $this->load->view('wilcare/report1',$result,true); $dompdf->load_html($html && $html1); 

Você quer criar no arquivo PDF a partir de dois arquivos HTML com o DOMPDF.

Isso não é possível. DOMPDF suporta a criação de um arquivo PDF a partir de um documento HTML.

Internamente DOMPDF usa DOMDocument para representar o documento HTML. Então, se você quiser colocar dois arquivos HTML no DOMPDF, é necessário combinar esses arquivos primeiro.

Comportamento de mesclagem de HTML DOMPDF

Testes revelaram que você pode concatenar seções mutlitple ...... (cada um desses pares iniciará uma nova página no DOMPDF), mas eles precisam estar dentro do mesmo Elemento do documento (DOMPDF v0.6.1).

Se você fundir elementos dentro do elemento , uma única página será criada.

Se você adicionar múltiplos documentos logo após o outro (como sugerido por Simo), o único documento é colocado no PDF.

Eu adiciono dois exemplos de PHP:

  1. O primeiro mostra como fundir dois documentos HTML em um único corpo que o DOMPDF processa como uma página ( PDF )
  2. O segundo mostra como fundê-los nos dois ...... que DOMPDF processa como duas páginas ( PDF )

PHP Exemplo Código Documento HTML mesclando DOMPDF corpo único

Por exemplo, você deseja append o conteúdo do corpo do segundo documento HTML ao final do corpo do primeiro (todos os objects do tipo DOMDocument ). :

 $doc1 = create_document(1); $doc2 = create_document(2); $doc1Body = $doc1->getElementsByTagName('body')->item(0); $doc2Body = $doc2->getElementsByTagName('body')->item(0); foreach ($doc2Body->childNodes as $child) { $import = $doc1->importNode($child, true); if ($import) { $doc1Body->appendChild($import); } } $doc1->saveHTMLFile('php://output'); 

Saída HTML Exemplar ( deste código de exemplo completo ):

     Document 1   

Document 1

Paragraph 1.1

Paragraph 1.2

Document 2

Paragraph 2.1

Paragraph 2.2

Cria este PDF: http://tinyurl.com/nrv78br (uma página)

PHP Exemplo Código Documento HTML mesclando DOMPDF várias páginas

Aqui, o exemplo com uma nova página no segundo documento HTML:

 foreach ($doc2->documentElement->childNodes as $child) { $import = $doc1->importNode($child, true); if ($import) { $doc1->documentElement->appendChild($import); } } $html = $doc1->saveHTML(); 

Saída HTML Exemplar:

  Document 1 

Document 1

Paragraph 1.1

Paragraph 1.2

Document 2

Document 2

Paragraph 2.1

Paragraph 2.2

Cria este PDF: http://tinyurl.com/oe4odmy (duas páginas)


Dependendo do que você precisa com seus documentos, você precisará fazer etapas adicionais, como fundir o título e as regras CSS (o que, com sorte, é portátil).

Você precisa mesclar os dois arquivos:

 //this file is not converting $html .= $this->load->view('wilcare/report1',$result,true);