Heim > Backend-Entwicklung > PHP-Tutorial > PHPWord添加文本到指定位置

PHPWord添加文本到指定位置

WBOY
Freigeben: 2016-07-06 13:54:10
Original
3680 Leute haben es durchsucht

想导出word文档,将文本添加到文档的指定位置,比如前一段话的后面,而前一段话是循环生成的,该段后面又有循环生成的另一段话,而我想加入的文本不能放在循环里,只能在两次循环输出文本之后添加,这样的话我怎么才能把文本输出到紧接着的第一个循环之后?
例如:

PHPWord添加文本到指定位置

我想将答案放在问题的后面,而问题和选项都是循环生成的,怎么才能实现将其放在“处分”的后面??
求大神赐教

部分代码:

<code>foreach ($ques['answer'] as $key => $an) {
            $textrun1 = $section->createTextRun('rStyle');
                            if (is_array($an['synopsis'])) {
                                $textrun1->addText($this->aZ[$key] . ".", 'rStyle');
                                foreach ($an['synopsis'] as $i) {
                                    if (isset($i['type']) && $i['type'] == "text") {
                                        $textrun1->addText($i['value'], 'rStyle');
                                    }
                                    if (isset($i['type']) && $i['type'] == "img" && file_exists($img = ROOT_DIR . str_replace(ROOT_URL, '', $i['value']))) {
                                        $imageStyle = array(
                                            'width' => $i['width'] == 0 ? 350 : $i['width'],
                                            'height' => $i['height'] == 0 ? 350 : $i['height']
                                            // 'align' => 'center',
                                        );
                                        $textrun1->addImage($img, $imageStyle);
                                    }
                                }
                                unset($textrun1);
                            } else {
                                $section->addText(strtoupper($this->aZ[$key]) . "." . $an['synopsis'], 'rStyle');
                            }
                            if ($an['value']) {
                                $answer[] = $this->aZ[$key];
                            }
                            $section->addTextBreak();
                        }
                        //判断是否输出答案
                        if($withAnswer==1){
                            $section->addText("(" . implode($answer, ",") . ")", 'rStyle');
                            $section->addTextBreak();
                            $answer = array();
                        }</code>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

想导出word文档,将文本添加到文档的指定位置,比如前一段话的后面,而前一段话是循环生成的,该段后面又有循环生成的另一段话,而我想加入的文本不能放在循环里,只能在两次循环输出文本之后添加,这样的话我怎么才能把文本输出到紧接着的第一个循环之后?
例如:

PHPWord添加文本到指定位置

我想将答案放在问题的后面,而问题和选项都是循环生成的,怎么才能实现将其放在“处分”的后面??
求大神赐教

部分代码:

<code>foreach ($ques['answer'] as $key => $an) {
            $textrun1 = $section->createTextRun('rStyle');
                            if (is_array($an['synopsis'])) {
                                $textrun1->addText($this->aZ[$key] . ".", 'rStyle');
                                foreach ($an['synopsis'] as $i) {
                                    if (isset($i['type']) && $i['type'] == "text") {
                                        $textrun1->addText($i['value'], 'rStyle');
                                    }
                                    if (isset($i['type']) && $i['type'] == "img" && file_exists($img = ROOT_DIR . str_replace(ROOT_URL, '', $i['value']))) {
                                        $imageStyle = array(
                                            'width' => $i['width'] == 0 ? 350 : $i['width'],
                                            'height' => $i['height'] == 0 ? 350 : $i['height']
                                            // 'align' => 'center',
                                        );
                                        $textrun1->addImage($img, $imageStyle);
                                    }
                                }
                                unset($textrun1);
                            } else {
                                $section->addText(strtoupper($this->aZ[$key]) . "." . $an['synopsis'], 'rStyle');
                            }
                            if ($an['value']) {
                                $answer[] = $this->aZ[$key];
                            }
                            $section->addTextBreak();
                        }
                        //判断是否输出答案
                        if($withAnswer==1){
                            $section->addText("(" . implode($answer, ",") . ")", 'rStyle');
                            $section->addTextBreak();
                            $answer = array();
                        }</code>
Nach dem Login kopieren
Nach dem Login kopieren

已解决,采用TextRun,将想要连接在一起的文本用同一个textrun对象表示出来。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage