首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPDOCX中的中心表

PHPDOCX中的中心表
EN

Stack Overflow用户
提问于 2012-04-04 23:16:33
回答 1查看 681关注 0票数 0

我正在使用PHPDocx (免费版本)在PHP中动态创建msword文档。

我找不到一张桌子在页面上居中对齐。我尝试过传入documentation中声明的样式参数,但没有传入joy。

有什么办法解决这个问题吗?

我当前的代码是;

代码语言:javascript
复制
$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');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-28 23:15:47

我也有同样的问题。如果你查看CreateTable源代码,你会发现对齐generateJC()的方法从来没有被调用过,所以传递一个'jc‘参数没有任何效果(这对于大多数选项都是一样的)。

您可以创建一个新类来覆盖它,如下所示:

代码语言:javascript
复制
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);
    }
}   

然后打电话给:

代码语言:javascript
复制
$table = new SmCreateTable();
$table->createTable($valuesTable, $paramsTable);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10014099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档