我正在使用PHPDocx (免费版本)在PHP中动态创建msword文档。
我找不到一张桌子在页面上居中对齐。我尝试过传入documentation中声明的样式参数,但没有传入joy。
有什么办法解决这个问题吗?
我当前的代码是;
$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');发布于 2012-09-28 23:15:47
我也有同样的问题。如果你查看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);https://stackoverflow.com/questions/10014099
复制相似问题