2010-07-19 1 views
1

내가 젠드 PDF와 이상한 문제가 생겼어요, 그냥 PDF로 내 행동 을 보여 얻을 수없는 나는이 코드를 가지고 :브라우저에서 젠드 PDF 쇼를 가져올 수 없습니다

$this->_helper->layout->disableLayout(); 
$this->_helper->viewRenderer->setNoRender(); 

$pdf = new Zend_Pdf('path/to/file.pdf'); 

$this->getResponse()->setHeader('Content-type', 'application/x-pdf', true); 
$this->getResponse()->setHeader('Content-disposition', 'inline; filename=filetrace.pdf', true); 
$this->getResponse()->setBody($pdf->render()); 

#0 E:\SRVApps\Zend\ZendServer\share\ZendFramework\library\Zend\Pdf.php(303): Zend_Pdf_Parser->__construct('http://example...', Object(Zend_Pdf_ElementFactory_Proxy), false) 
#1 E:\wwwroot\test\htdocs\application\modules\dashboard\controllers\FileController.php(171): Zend_Pdf->__construct('http://example...') 
#2 E:\SRVApps\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Action.php(513): Dashboard_FileController->showAction() 
#3 E:\SRVApps\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('showAction') 
#4 E:\SRVApps\Zend\ZendServer\share\ZendFramework\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#5 E:\SRVApps\Zend\ZendServer\share\ZendFramework\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch() 
#6 E:\SRVApps\Zend\ZendServer\share\ZendFramework\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() 
#7 E:\wwwroot\test\htdocs\public\index.php(26): Zend_Application->run() 
#8 {main} 

아무도 아이디어가 있습니까

아무 문제가없는 새 PDF를 만들 :

젠드이 스택 트레이스를 생성?

감사

+0

PDF 대신 무엇이 표시됩니까? –

+0

응용 프로그램 오류/내부 서버 오류 – Peter

답변

1

방법 1 : Zend_Pdf 외부 이진 문자열을 가져

$file = file_get_contents('path/to/file.pdf') 
$pdf = new Zend_Pdf($file); 

는 방법 2 : 정적 load -method 사용 : $load 매개 변수 true

$pdf = new Zend_Pdf('path/to/file.pdf', null, true); 

방법 3을 설정

$pdf = Zend_Pdf::load('path/to/file.pdf'); 
1

나는 이것이 낡은 질문이라는 것을 알고 있지만 시행 착오를 통해 이것에 대한 답을 발견했다. 이것은 브라우저에서 pdf 만 표시되도록하는 동작입니다. Chrome에서 작동합니다. 나는 다른 어떤 브라우저에서 그것을 테스트하지 않았다.

$this->_helper->viewRenderer->setNoRender(); 
    $this->_helper->layout()->disableLayout(); 
    $this->getResponse() 
     ->setHeader('Content-Disposition', 'inline; filename=foo.pdf') 
     ->setHeader('Content-type', 'application/pdf'); 
    $pdf = Zend_Pdf::load('/path/to/my.pdf'); 
    echo $pdf->render();