1

我正在尝试使用http://php-odt.sourceforge.net更改表中所有文本的字体名称。这是代码,

include 'phpodt-0.3/phpodt.php';

$odt = ODT::getInstance();

$table = new Table('table1');
$table->createColumns(3);
$table->addHeader(array('Col 1', 'Col 2', 'Col 3'));
$rows = array(array('1-1', '1-2', '1-3'), array('2-1', '2-2', '2-3'));
$table->addRows($rows);

$odt->output('test_table.odt'); 

我搜索了php-odt 的文档,没有找到任何东西。

4

1 回答 1

0

我认为你必须做这样的事情:

$tableStyle = new TableStyle('yourcsstablestyle'); //This appears to need to be a style class, where you can set font
$table = new Table('table1', $tableStyle);

以上内容未经测试,但我们可以在 PHP-ODT 源代码中看到class.table.php

class Table {

    //Elide member variables

    /**
     *
     * @param DOMDocument $contentDoc The DOMDocument instance of content.xml
     * @param TableStyle $tableStyle A TableStyle object representing table style properties
     */
    public function __construct($tableName, $tableStyle = null) {
      ... //more code

您必须传递一个$tableStyle值才能使表格设置样式。

该类TableStyle的构造函数如下所示:

public function __construct($name) {
    parent::__construct($name);
    $this->styleElement->setAttribute('style:family', 'table');
    $this->tableProp = $this->contentDocument->createElement('style:table-properties');
    $this->styleElement->appendChild($this->tableProp);
}

因此需要将样式类传递给TableStyle.

该文档显示了如何在此处进行段落样式设置,并且模式似乎相同。

于 2015-10-23T20:10:25.283 回答