2012-04-04 2 views
0

나는 PHP로 PHPDocx (무료 버전)을 사용하여 msword 문서를 동적으로 생성하고 있습니다.PHPDOCX의 가운데 테이블

페이지 가운데 정렬 할 때 표를 정렬하는 데 문제가 있습니다. documentation에 나와있는 스타일 매개 변수를 전달하려고 시도했지만 기쁨은 없습니다.

해결 방법에 대한 의견이 있으십니까?

현재 코드는;

$docx = new CreateDocx(); 

$valuesTable = array(
    array(
     11, 
     12 
    ), 
    array(
     21, 
     22 
    ), 
); 

$paramsTable = array(
    'jc' => 'center', 
    'border' => 'single', 
    'border_sz' => 20 
); 

$docx->addTable($valuesTable, $paramsTable); 

$docx->createDocx('example_table'); 

답변

0

나는 동일한 문제가있었습니다. CreateTable 소스를 보면 generateJC()를 정렬하는 메소드가 호출되지 않는다는 것을 알 수 있습니다. 'jc'매개 변수를 전달하면 효과가 없습니다. 대부분의 옵션과 동일합니다.

당신은이 같은 새로운 클래스를 생성 재정의 할 수

class SmCreateTable extends CreateTable{ 
    public function createTable() 
    { 
     $this->_xml = ''; 
     $args = func_get_args(); 

     if (is_array($args[0])) { 
      $this->generateTBL(); 
      $this->generateTBLPR(); 

      if(!empty($args[1]['jc'])){ 
       $this->generateJC($args[1]['jc']); 
      } 

      $this->generateTBLW(); 
      if (!empty($args[1]['border'])) { 
       $this->generateTBLBORDERS(); 
       $this->generateTBLBOTTOM(); 
       $this->generateTBLLEFT(); 
       $this->generateTBLTOP(); 
       $this->generateTBLRIGHT(); 
       $this->generateTBLINSIDEH(); 
       $this->generateTBLINSIDEV(); 
      } 

      $this->generateTBLLOOK(); 
      $this->generateTBLOVERLAP(); 
      $intLine = 0; 
      foreach ($args[0] as $datDepth) { 
       $this->generateTR(); 
       $intLine++; 
       foreach ($datDepth as $cont) { 
        $this->generateTC(); 
        $this->generateP(); 
        $this->generateR(); 
        if ($args[1]['font'] != '') { 
         $this->generateRPR(); 
         $this->generateRFONTS($args[1]['font']); 
        } 
        $this->generateT($cont); 
       } 
       $this->cleanTemplateR(); 
      } 
     } 
    } 

    private function cleanTemplateR() 
    { 
     $this->_xml = preg_replace('/__GENERATETR__/', '', $this->_xml); 
    } 
} 

다음 호출 :

$table = new SmCreateTable(); 
$table->createTable($valuesTable, $paramsTable);