|
|
@@ -15249,6 +15249,8 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
foreach ($phpWord->getSections() as $section) {
|
|
|
foreach ($section->getElements() as $element) {
|
|
|
$content .= $this->extractWordElementText($element);
|
|
|
+ // 段落边界补换行(段落内的软换行已在元素递归中处理)
|
|
|
+ $content .= "\n";
|
|
|
}
|
|
|
}
|
|
|
return trim($content);
|
|
|
@@ -15264,12 +15266,16 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
*/
|
|
|
private function extractWordElementText($element) {
|
|
|
$text = '';
|
|
|
- if (method_exists($element, 'getText')) {
|
|
|
- $text .= $element->getText() . "\n";
|
|
|
+ if ($element instanceof \PhpOffice\PhpWord\Element\TextBreak
|
|
|
+ || $element instanceof \PhpOffice\PhpWord\Element\LineBreak) {
|
|
|
+ // 软换行:保留 Word 中的换行显示,避免"第X集"标题与正文粘连
|
|
|
+ $text .= "\n";
|
|
|
} elseif (method_exists($element, 'getElements')) {
|
|
|
foreach ($element->getElements() as $childElement) {
|
|
|
$text .= $this->extractWordElementText($childElement);
|
|
|
}
|
|
|
+ } elseif (method_exists($element, 'getText')) {
|
|
|
+ $text .= $element->getText();
|
|
|
}
|
|
|
return $text;
|
|
|
}
|