示例#1
1
 /**
  *  Save PHPExcel to file
  *
  *  @param     string     $pFilename   Name of the file to save as
  *  @throws    PHPExcel_Writer_Exception
  */
 public function save($pFilename = null)
 {
     $fileHandle = parent::prepareForSave($pFilename);
     //  Default PDF paper size
     $paperSize = 'LETTER';
     //    Letter    (8.5 in. by 11 in.)
     //  Check for paper size and page orientation
     if (is_null($this->getSheetIndex())) {
         $orientation = $this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
         $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize();
         $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins();
     } else {
         $orientation = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
         $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
         $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins();
     }
     $this->setOrientation($orientation);
     //  Override Page Orientation
     if (!is_null($this->getOrientation())) {
         $orientation = $this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation();
     }
     $orientation = strtoupper($orientation);
     //  Override Paper Size
     if (!is_null($this->getPaperSize())) {
         $printPaperSize = $this->getPaperSize();
     }
     if (isset(self::$paperSizes[$printPaperSize])) {
         $paperSize = self::$paperSizes[$printPaperSize];
     }
     //  Create PDF
     $pdf = new mpdf();
     $ortmp = $orientation;
     $pdf->_setPageSize(strtoupper($paperSize), $ortmp);
     $pdf->DefOrientation = $orientation;
     $pdf->AddPage($orientation);
     //  Document info
     $pdf->SetTitle($this->_phpExcel->getProperties()->getTitle());
     $pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator());
     $pdf->SetSubject($this->_phpExcel->getProperties()->getSubject());
     $pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords());
     $pdf->SetCreator($this->_phpExcel->getProperties()->getCreator());
     $pdf->WriteHTML($this->generateHTMLHeader(false) . $this->generateSheetData() . $this->generateHTMLFooter());
     //  Write to file
     fwrite($fileHandle, $pdf->Output('', 'S'));
     parent::restoreStateAfterSave($fileHandle);
 }
示例#2
0
 /**
  * Save PhpWord to file.
  *
  * @param string $filename Name of the file to save as
  * @return void
  */
 public function save($filename = null)
 {
     $fileHandle = parent::prepareForSave($filename);
     //  PDF settings
     $paperSize = strtoupper('A4');
     $orientation = strtoupper('portrait');
     //  Create PDF
     $pdf = new \mpdf();
     $pdf->_setPageSize($paperSize, $orientation);
     $pdf->addPage($orientation);
     // Write document properties
     $phpWord = $this->getPhpWord();
     $docProps = $phpWord->getDocInfo();
     $pdf->setTitle($docProps->getTitle());
     $pdf->setAuthor($docProps->getCreator());
     $pdf->setSubject($docProps->getSubject());
     $pdf->setKeywords($docProps->getKeywords());
     $pdf->setCreator($docProps->getCreator());
     $pdf->writeHTML($this->getContent());
     //  Write to file
     fwrite($fileHandle, $pdf->output($filename, 'S'));
     parent::restoreStateAfterSave($fileHandle);
 }
示例#3
0
 /**
  * Save PHPExcel to file
  *
  * @param 	string 		$pFileName
  * @throws 	Exception
  */
 public function save($pFilename = null)
 {
     // garbage collect
     $this->_phpExcel->garbageCollect();
     $saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType();
     PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);
     // Open file
     $fileHandle = fopen($pFilename, 'w');
     if ($fileHandle === false) {
         throw new Exception("Could not open file {$pFilename} for writing.");
     }
     // Set PDF
     $this->_isPdf = true;
     // Build CSS
     $this->buildCSS(true);
     // Default PDF paper size
     $paperSize = 'LETTER';
     //	Letter	(8.5 in. by 11 in.)
     // Check for paper size and page orientation
     if (is_null($this->getSheetIndex())) {
         $orientation = $this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
         $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize();
         $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins();
     } else {
         $orientation = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
         $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
         $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins();
     }
     $this->setOrientation($orientation);
     //	Override Page Orientation
     if (!is_null($this->getOrientation())) {
         $orientation = $this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation();
     }
     $orientation = strtoupper($orientation);
     //	Override Paper Size
     if (!is_null($this->getPaperSize())) {
         $printPaperSize = $this->getPaperSize();
     }
     if (isset(self::$_paperSizes[$printPaperSize])) {
         $paperSize = self::$_paperSizes[$printPaperSize];
     }
     // Create PDF
     $pdf = new mpdf();
     $pdf->_setPageSize(strtoupper($paperSize), $orientation);
     $pdf->DefOrientation = $orientation;
     // Document info
     $pdf->SetTitle($this->_phpExcel->getProperties()->getTitle());
     $pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator());
     $pdf->SetSubject($this->_phpExcel->getProperties()->getSubject());
     $pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords());
     $pdf->SetCreator($this->_phpExcel->getProperties()->getCreator());
     $pdf->WriteHTML($this->generateHTMLHeader(false) . $this->generateSheetData() . $this->generateHTMLFooter());
     // Write to file
     fwrite($fileHandle, $pdf->Output('', 'S'));
     // Close file
     fclose($fileHandle);
     PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType);
 }
示例#4
0
	/**
	 * Save PHPExcel to file
	 *
	 * @param 	string 		$pFileName
	 * @throws 	Exception
	 */
	public function save($pFilename = null) {
		// garbage collect
		$this->_phpExcel->garbageCollect();

		$saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType();
		PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE);

		// Open file
		$fileHandle = fopen($pFilename, 'w');
		if ($fileHandle === false) {
			throw new Exception("Could not open file $pFilename for writing.");
		}
		// Set PDF
		$this->_isPdf = true;
		// Build CSS
		$this->buildCSS(true);
		
		if(!$this->_printParamsSetted) {
			// Default PDF paper size
			$paperSize = 'A4';
	
			// Check for paper size and page orientation
			if (is_null($this->getSheetIndex())) {
				$orientation = ($this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
				$printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize();
				$printMargins = $this->_phpExcel->getSheet(0)->getPageMargins();
			} else {
				$orientation = ($this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';
				$printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
				$printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins();
			}
			$this->setOrientation($orientation);
	
			//	Override Page Orientation
			if (!is_null($this->getOrientation())) {
				$orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) ?
					PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation();
			}
			$orientation = strtoupper($orientation);
	
			//	Override Paper Size
			if (!is_null($this->getPaperSize())) {
				$printPaperSize = $this->getPaperSize();
			}
	
			if (isset(self::$_paperSizes[$printPaperSize])) {
				$paperSize = self::$_paperSizes[$printPaperSize];
			}
			
			if(is_string($paperSize)){
				$paperSize = strtoupper($paperSize.(substr($orientation,0,1) == 'L' ? '-L' : ''));
			}
			
			if($printMargins) {	//$printMargins是英寸制,要转换成毫米
				$tmargin = 25.4 * $printMargins->getTop();
				$bmargin = 25.4 * $printMargins->getBottom();
				$lmargin = 25.4 * $printMargins->getLeft();
				$rmargin = 25.4 * $printMargins->getRight();
				$hmargin = 25.4 * $printMargins->getHeader();
				$fmargin = 25.4 * $printMargins->getFooter();
			}
		}
		else {
			$paperSize = $this->_printPaperSize;
			$orientation = $this->_printOrientation;
			$tmargin = $this->_printTmargin;
			$bmargin = $this->_printBmargin;
			$lmargin = $this->_printLmargin;
			$rmargin = $this->_printRmargin;
			$hmargin = $this->_printHmargin;
			$fmargin = $this->_printFmargin;
		}
		
		error_reporting(E_ALL ^ E_NOTICE); //当前的版本很多notice警告,屏蔽掉
		
		// Create PDF
		$pdf = new mpdf();
		$pdf->useAdobeCJK = true;		// Default setting in config.php
		$pdf->SetAutoFont(AUTOFONT_ALL);	//	AUTOFONT_CJK | AUTOFONT_THAIVIET | AUTOFONT_RTL | AUTOFONT_INDIC	// AUTOFONT_ALL

// 		Log::write("\ndefault pdf:\nT:".$pdf->tMargin."\nB:".$pdf->bMargin."\nL:".$pdf->DeflMargin."\nR:".$pdf->DefrMargin."\nH:".$pdf->margin_header."\nF:".$pdf->margin_footer."\n\n");

		$pdf->_setPageSize($paperSize, $orientation);
        $pdf->DefOrientation = $orientation;

        if(!empty($this->_printFooterO)) {
        	$pdf->SetHTMLFooter($this->_printFooterO);
        }
        if(!empty($this->_printHeaderO)) {
        	$pdf->SetHTMLHeader($this->_printHeaderO, 'O');
        }
		if(!empty($this->_printFooterE)) {
			$pdf->SetHTMLFooter($this->_printFooterE, 'E');
		}
		if(!empty($this->_printHeaderE)) {
			$pdf->SetHTMLHeader($this->_printHeaderE, 'E');
		}
		if(!empty($tmargin)) {
			$pdf->tMargin = $tmargin;
		}
		if(!empty($bmargin)) {
			$pdf->bMargin = $bmargin;
		}
		if(!empty($lmargin)) {
			$pdf->DeflMargin = $lmargin;
		}
		if(!empty($rmargin)) {
			$pdf->DefrMargin = $rmargin;
		}
		if(!empty($hmargin)) {
			$pdf->margin_header = $hmargin;
		}
		if(!empty($fmargin)) {
			$pdf->margin_footer = $fmargin;
		}
		
		$pdf->mirrorMargins = $this->_mirrorMargins;
		
        if(!empty($this->_script)) {
        	$pdf->SetJS($this->_script);
        }
        
        // Document info
		$pdf->SetTitle($this->_phpExcel->getProperties()->getTitle());
		$pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator());
		$pdf->SetSubject($this->_phpExcel->getProperties()->getSubject());
		$pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords());
		$pdf->SetCreator($this->_phpExcel->getProperties()->getCreator());

		$pdf->WriteHTML(
			$this->generateHTMLHeader(false) .
			$this->generateSheetData() .
			$this->generateHTMLFooter()
		);

		// Write to file
		fwrite($fileHandle, $pdf->Output('','S'));

		// Close file
		fclose($fileHandle);

		PHPExcel_Calculation::setArrayReturnType($saveArrayReturnType);
	}