2012-05-13 15 views
3

私はPHPExcelで作成したExcelファイルをPDFにエクスポートしています。私の唯一の問題は、コンテンツが消えるページの幅(長さではない)にコンテンツが移動する場合です。その内容が存在するはずの空白のページだけが作成されます。私は、ドキュメントから、この例のように行と列の区切りを挿入しようとしましたが、唯一の行ブレークはPDFで動作するように見える:PHPExcel PDFレイアウト

$objPHPExcel->getActiveSheet()->setBreak('D10' , \PHPExcel_Worksheet::BREAK_COLUMN); 

それは私がSymfony2のコントローラ内から働いています言及する価値がある、したがって、 PHPExcel列挙の前にスラッシュ。

私の理想的な解決策は、実際のExcelドキュメントに表示されるようにテーブル全体を表示するために、最初のページの横に配置できる2番目のページに余分なコンテンツを流すことです。

+0

給与レイアウトをポートレートからランドスケープに切り替えることはできますか? –

+0

私はできますが、私のコンテンツは無限に広いので、助けにはならないでしょう。 – user1045879

答えて

1

これは、html出力をPDF(すなわちtcPDF)としてレンダリングするためにPHPExcelで使用される外部ライブラリの制限です。

HTMLからPDFを生成することができる他のライブラリ(domPdfやmPdfなど)やPHPExcelの将来のバージョンでは、これらのライブラリのうちどれを使用するかを選択することができますワークシートの全幅からデータを表示するために複数のページを生成する能力があるようです。

誰かが代替案を提案できない限り、私はこれが近い将来の制限として残るのではないかと心配しています。私は垂直方向に同様の問題を抱えていた

+0

答えをありがとう。私の解決策は、手作業ですべてをレイアウトし、フォントを縮小し、非常に細い罫線を使用することで、1ページに収まるようにすることでした。 – user1045879

0

、私が見つけた ソリューションは、私は幅の似た何かをしようと示唆している。この

$highestRow = $objPHPExcel->setActiveSheetIndex(0) 
    ->getHighestRow(); 

$objPHPExcel->setActiveSheetIndex(0) 
    ->getPageSetup() 
    ->setPrintArea("A1:I" . $highestRow) 
    ->setFitToHeight(255); 

を使用することでした。 例:

$highestColumn= $objPHPExcel->setActiveSheetIndex(0) 
     ->getHighestColumn(); 


    $objPHPExcel->setActiveSheetIndex(0) 
     ->getPageSetup() 
     ->setPrintArea("A1:" . $highestColumn . "10") 
     ->setFitToWidth(255);