Eğer bir metin editörü (veya bir onaltılık editörü) ile dosyayı açmaya çalışırsanız, ne alabilirim?
PDF dosyası başında veya sonunda herhangi bir HTML veya boşluk sadece PDF verileri içeren ve olmamalıdır.
One thing that could cause troubles is the automatic rendering of a View by Zend Framework.
Using something like this at the beginning of your action might help :
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
I've looked at a sample I wrote sometime action, and it's the only difference I see with what you did, actually...
If it still doesn't work, what if you try saving the PDF to a file instead of sending it to the user ? With something like that, for instance :
$pdf->save(CACHE_DIR . '/test-pdf.pdf');
Ben size ne yapmak istediğinizi değil, biliyorum; ama siz PDF iyi oluşturulan ise sorun PDF nesil olup olmadığını belirlemek için, kontrol ya da çıkış var ile sağlayacak.
Ve burada bahsettiğim tam örnek:
public function pdfAction()
{
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$pdf = new Zend_Pdf();
$pdf->properties['Title'] = "TITLE";
$pdf->properties['Author'] = "AUTHOR";
$page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
$width = $page->getWidth(); // A4 : 595
$height = $page->getHeight(); // A4 : 842
$imagePath = WEB_DIR . '/images/logo.png';
$image = Zend_Pdf_Image::imageWithPath($imagePath);
$x = 15;
$y = $height - 15 - 106/2;
$page->drawImage($image, $x, $y, $x+155/2, $y+106/2);
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
$page->setFont($font, 36);
$page->drawText('Hello world!', 72, 720, 'UTF-8');
$pdf->pages[] = $page;
$this->getResponse()->setHeader('Content-type', 'application/x-pdf', true);
$this->getResponse()->setHeader('Content-disposition', 'inline; filename=my-file.pdf', true);
$this->getResponse()->setBody($pdf->render());
}
Gibi Hatırladığım kadarıyla, bu birkaç ay önce gayet iyi çalışıyordu; ve kod ile tek farkları:
- düzen / render devre dışı
- Bir logosunu kullanarak; ama bu kadar fark yapmamalısınız
Hope this helps ; Have fun!