Perhaps this might help you. Use or copy the code https://github.com/ceeram/CakePdf
Op vrijdag 18 mei 2012 23:59:46 UTC+2 schreef Josh M het volgende: > > > > On May 18, 2:28 pm, AD7six <[email protected]> wrote: > > On Friday, 18 May 2012 18:09:35 UTC+2, Josh M wrote: > > > > > Hello all, > > > > > I am having issues using the DOMPDF pdf generation library in my > > > Cake 2.1 application. I am building an inventory management > > > application for use at my company and I am trying to dynamically > > > generate pdfs my users can print as stock labels. However, when I > > > attempt to stream to pdf in my view I get a "Headers already sent" > > > error. I have already removed all leading and trailing spaces from > > > the view and the DOMPDF include file. I am also using the ajax layout > > > which does not preface the content with any html markup. I guess that > > > cake is sending headers somewhere in the view rendering process that I > > > can't see. Below is the code for my controller function and my view: > > > > > Controller method: > > > public function printSingleLabel($id = null){ > > > if($id === null){ > > > $this->Session->setFlash('No ID provided to print label'); > > > $this->redirect(array('action'=>'index')); > > > }else{ > > > $this->set('stockItem', $this->StockItem->find('first', > > > array( > > > 'recursive'=>3, 'conditions'=>array( > > > 'StockItem.id'=>$id > > > ) > > > ))); > > > $this->set('quantity', 15); > > > $this->render('printSingleLabel', 'ajax'); > > > } > > > } > > > > > View file: > > > <? > > > require_once("dompdf/dompdf_config.inc.php"); > > > $html = <<<EOD > > > <html> > > > <head> > > > <title></title> > > > <meta http-equiv="Content-Type" content="text/html; > > > charset=UTF-8"> > > > <style> > > > @page { > > > margin: 0in 0in 0in 0in; > > > } > > > body { > > > margin: 0in; > > > padding: 0in; > > > font-size:8pt; > > > font-family: Arial, Sans-Serif; > > > } > > > div { > > > float:left; > > > /*width:2.75in;*/ > > > padding:0in; > > > /*height:2.125in;*/ > > > margin:0in; > > > } > > > > > div.center { > > > margin-left: 0.135in; > > > margin-right: 0.135in; > > > } > > > </style> > > > </head> > > > <body> > > > <div> > > > <strong>{$stockItem['Part']['number']} Rev > {$stockItem['StockItem'] > > > ['revision']}</strong> > > > <br/> > > > {$stockItem['Part']['name']} > > > <br/> > > > <strong>Lot/Batch:</strong>{$stockItem['StockItem']['lot']}/ > > > {$stockItem['StockItem']['batch']}<br/> > > > <strong>Expires:</strong>{$stockItem['StockItem']['exp_date']}<br/ > > > > > <strong>Status:</strong>{$stockItem['Status']['code']}<br/> > > > <strong>Quantity:</strong>$quantity{$stockItem['Part']['Uom'] > > > ['code']}<br/> > > > </div> > > > </body></html> > > > EOD; > > > $pdf = new DOMPDF(); > > > $pdf->set_paper(array(0,0,153,198), 'landscape'); > > > $pdf->load_html($html); > > > $pdf->render(); > > > $pdf->stream("sample.pdf", array('Attachment'=>0)); > > > > > I've spent a whole afternoon trying to track down where the headers > > > are being sent with no luck. If anyone has a suggestion I'd greatly > > > appreciate it. > > > > Read the error message? > > > > Warning: Cannot modify header information - headers already sent by > (output > > started at ***/this/file*:*on this line***) in /irrelevant.php > > > > AD > > The error is being generated by DOMPDF and reads exactly this: "Unable > to stream pdf: headers already sent" It does not tell me where the > headers were sent. I used this same template to create pdfs in > another application that didn't use the CakePHP framework and I got no > such error. > > Let me ask this another way: I submit a request through the client > for a controller method. That method performs some logic and passes > data off to a view to be rendered. Are headers sent at any point > before the contents of the view are rendered? I attempted to create a > controller that performed no logic and created a view that contained > only a single line of code: <? header('Location: http://google.com'); ? > > When I request that action my browser simply renders a blank page. > No redirect, no error. I don't understand how this could happen. I > should either get a redirect to google or an error, but I get > neither. My error reporting is set to E_ALL and E_DEPRECATED. > > I'm new to web development and CakePHP so I suspect I'm missing > something obvious here, but I'm out of ideas. -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
