0

我正在使用 phppowerpoint 生成 ppt 文件。我想更改 PPT 中各行之间的默认行高。

ppt幻灯片屏幕抓取

这是我用来生成ppt的一些代码。

$shape->createParagraph()->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT)->setVertical(PHPPowerPoint_Style_Alignment::VERTICAL_TOP);
$textRun = $shape->createTextRun($ppt_build[$i][$k]['text'][$j]['textrun']);
$textRun->getFont()->setBold($ppt_build[$i][$k]['text'][$j]['bold']);
$textRun->getFont()->setSize($ppt_build[$i][$k]['text'][$j]['size']); //setName
$textRun->getFont()->setName($ppt_build[$i][$k]['text'][$j]['name']); //setName
$textRun->getFont()->setColor(new PHPPowerPoint_Style_Color($ppt_build[$i][$k]['text'][$j]['color']));

然后创建一个换行符

$shape->createBreak();

我尝试使用 2 个换行符,但这超出了我的需要。

我也尝试过这里提到的解决方案

http://phppowerpoint.codeplex.com/discussions/273396

但是使用该解决方案,它只会在段落之前和之后添加空间。

是否有任何备忘单或列表包含为 powerpoint 生成的 xml 文件中使用的 xml 节点/元素/名称

4

1 回答 1

2

按照以下步骤来实现这一点

里面 /* /powerpoint/PHPPowerPoint/Shape/RichText/Paragraph.php */

private $_spacing;

/**
 * Get spacing
 *
 * @return PHPPowerPoint_Style_Spacing
 */
public function getSpacing() {
    return $this->_spacing;
}

/**
 * Set spacing
 *
 * @param    PHPPowerPoint_Style_Spacing        $spacing
 * @throws     Exception
 * @return PHPPowerPoint_Shape_RichText_Paragraph
 */
public function setSpacing($spacing = '100000') {
    $this->_spacing = $spacing;
    return $this;
}

然后在 /PHPPowerPoint/Writer/PowerPoint2007/Slide.php 里面

private function _writeParagraphs(PHPPowerPoint_Shared_XMLWriter $objWriter, $paragraphs) {

$objWriter->writeAttribute('lvl', $paragraph->getAlignment()->getLevel());

添加

        if ($paragraph->getSpacing()) {
            $objWriter->startElement('a:lnSpc');
            $objWriter->startElement('a:spcPct');
            $objWriter->writeAttribute('val', $paragraph->getSpacing());
            $objWriter->endElement();
            $objWriter->endElement();
        }
于 2013-12-24T05:18:26.797 回答