Ejemplo n.º 1
0
 /**
  * 导出Pdf
  * @param request 请求对象
  * @param response 响应对象
  * @param pager dtGrid对象
  * @param exportDatas 导出的数据
  * @param fileName 文件名
  * @throws Exception
  */
 static function exportPdf($pager, $exportDatas, $fileName)
 {
     //		定义PDF文件
     $pdf = new PDF_Chinese("L");
     $pdf->AddGBFont();
     $pdf->AddPage();
     $pdf->SetFont('GB', '', 9);
     $pdf->SetFillColor(47, 151, 210);
     $pdf->SetDrawColor(33, 33, 33);
     $pdf->SetTextColor(255, 255, 255);
     //		循环一次获取出宽度
     $widths = array();
     if ($pager["exportColumns"] != null && count($pager["exportColumns"]) > 0) {
         //			循环写入表头
         foreach ($pager["exportColumns"] as $column) {
             array_push($widths, $pdf->GetStringWidth(iconv("UTF-8", "GBK", $column["title"])) + 6);
         }
         //			判断表中是否有数据
         if ($exportDatas != null && count($exportDatas) > 0) {
             //				循环写入表中数据
             foreach ($exportDatas as $record) {
                 $i = 0;
                 foreach ($pager["exportColumns"] as $column) {
                     $content = $record[$column["id"]];
                     //						如果内容未被处理则进行格式化
                     if (!$pager["exportDataIsProcessed"]) {
                         $content = DtGridUtils::formatContent($column, $content);
                     }
                     $width = $pdf->GetStringWidth(iconv("UTF-8", "GBK", $content)) + 6;
                     if ($widths[$i] < $width) {
                         $widths[$i] = $width;
                     }
                     $i++;
                 }
             }
         }
     }
     //		判断一下表头数组是否有数据
     if ($pager["exportColumns"] != null && count($pager["exportColumns"]) > 0) {
         //			循环写入表头
         $i = 0;
         foreach ($pager["exportColumns"] as $column) {
             $pdf->Cell($widths[$i], 6, iconv("UTF-8", "GBK", $column["title"]), 1, 0, "C", 1);
             $i++;
         }
         $pdf->SetTextColor(44, 44, 44);
         $pdf->Ln();
         //			判断表中是否有数据
         if ($exportDatas != null && count($exportDatas) > 0) {
             //				循环写入表中数据
             foreach ($exportDatas as $record) {
                 $i = 0;
                 foreach ($pager["exportColumns"] as $column) {
                     $content = $record[$column["id"]];
                     //						如果内容未被处理则进行格式化
                     if (!$pager["exportDataIsProcessed"]) {
                         $content = DtGridUtils::formatContent($column, $content);
                     }
                     $pdf->Cell($widths[$i], 6, iconv("UTF-8", "GBK", $content), 1, 0, "C", 0);
                     $i++;
                 }
                 $pdf->Ln();
             }
         }
     }
     $pdf->Output($fileName . ".pdf", "D");
 }