2017-12-31 70 views
0

다음과 같이 DOMpdf을 사용하여 페이지의 pdf 파일을 만들었습니다.codeignitor에서 위치를 탐색하여 PDF 파일을 생성했습니다.

<?php 

use Dompdf\Dompdf; 
class Pdfgenerator { 

    public function generate($html, $filename='', $stream=TRUE, $paper = 'A4', $orientation = "portrait") 
    { 
    $dompdf = new DOMPDF(array('enable_remote' => true)); 
    $dompdf->loadHtml($html); 
    $dompdf->setPaper($paper, $orientation); 
    $dompdf->render(); 
    if ($stream) { 
     $dompdf->stream($filename.".pdf", array("Attachment" => 0)); 
    } else { 
     return $dompdf->output(); 
    } 
    } 
} 

뷰 페이지 Save As Pdf 버튼을 클릭에서 페이지 PDF는 DOMpdf을 사용하는 제어기 함수 생성하고 설정하는 다운로드 경로에 다운로드 될 수있는 곳에서 브라우저에 새로운 탭에 PDF를 열고 브라우저 용. 실제로 원하는 것은

$html = $this->load->view('test/pdfview', $this->data, true); 
$this->load->library('pdfgenerator'); 
$filename = 'testfile'; 
$this->pdfgenerator->generate($html, $filename, true, 'a4', ''); 

이러한 PDF가 이미 지정된 위치로 이동하는 열하는 저장 프롬프트가 생성 될 때 주어진 경로에서 파일을 다운로드하는 것입니다. 올바른 위치에서 저장을 누르면 저장할 수 있고 그렇지 않으면 적절한 저장 위치로 이동할 수 있습니다. 이들은 이미 비슷한 질문이 있지만 이미 발견 한 것들이 있지만 도움이되지 못했습니다.

어떤 제안이 될 것이다 당신은 브라우저

<?php 


use Dompdf\Dompdf; 
class Pdfgenerator { 

    public function downLoadPdf(){ 
     $name= "testfile.pdf"; 

     header('Content-Description: File Transfer'); 
     header('Content-Type: application/force-download'); 
     header("Content-Disposition: attachment; filename=\"" . basename($name) . "\";"); 
     header('Content-Transfer-Encoding: binary'); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($name)); 
     ob_clean(); 
     flush(); 
     readfile("your_file_path/".$name); //showing the path to the server where the file is to be download 

    } 
} 
    ?> 

에 PDF를 생성 보내드립니다 PHP에서 다음과 같은 스크립트를 만들 수 있습니다

답변

1

도움 이 함수를 클래스 및 칼럼에 추가하기 만하면됩니다. l 저장 버튼 클릭시 ajax 사용 (브라우저가보기 페이지에있는 경우)
저장 버튼을 클릭하면 브라우저에서이 스크립트를 호출하면 브라우저가 자동으로 저장 창을 열고 원하는 위치에 파일을 저장할 수 있습니다.

+1

이것이 작동하지 않는 것 같습니다. 나는 pdf를 만든 후에이 코드를 추가했다. 즉 '$ this-> pdfgenerator-> generate ($ html, $ filename, true,'a4 ',' ') 뒤에 문제가 발생하면 브라우저 페이지에서 pdf가 열리고 저장 창이 표시되지 않습니다. – Whoosis

+1

답변을 편집했습니다. 새 함수를 만들어서보기에서 저장 단추로 호출해야합니다. –

+1

당신의 도움에 감사하지만 나는 pdf가 스 니펫과 함께 어떻게 생성 될지 이해하지 못한다. 즉, 저장 버튼 호출에서 html을 pdf로 변환하는 함수가 호출된다. (즉,'$ this-> pdfgenerator-> generate ($ html, $ filename, true, 'a4', '')'), savePrint를 호출하면'testfile.pdf'는 아직 다운로드되지 않았다. – Whoosis