我从一个较旧的堆栈溢出问题中找到了建议,但我在让它工作时遇到了问题。我在它们描述的地方添加了方法,但生成的word文件没有换行符(在解压后通过查看docx文件进行查看)。没有错误,因此该方法似乎在做一些我不想要的事情。我之所以这样做是因为我需要\n
字符,我使用PHPRtfText确实可以很好地实现这一点,但在兼容性方面存在问题,而且它作为Word2007文件似乎工作得更好,所以我相应地转换了代码。虽然,可能我把它放错了位置,但下面是修改后的函数:
/lib/PHPWord/Writer/Word2007/Base。php:
protected function _writeTextRun(PHPWord_Shared_XMLWriter $objWriter = null, PHPWord_Section_TextRun $textrun)
{
$elements = $textrun->getElements();
$styleParagraph = $textrun->getParagraphStyle();
$SpIsObject = ($styleParagraph instanceof PHPWord_Style_Paragraph) ? true : false;
$objWriter->startElement('w:p');
if($SpIsObject)
{
$this->_writeParagraphStyle($objWriter, $styleParagraph);
}
elseif(!$SpIsObject && !is_null($styleParagraph))
{
$objWriter->startElement('w:pPr');
$objWriter->startElement('w:pStyle');
$objWriter->writeAttribute('w:val', $styleParagraph);
$objWriter->endElement();
$objWriter->endElement();
}
if(count($elements) > 0)
{
foreach($elements as $element)
{
if($element instanceof PHPWord_Section_Text)
{
$this->_writeText($objWriter, $element, true);
}
elseif($element instanceof PHPWord_Section_Link)
{
$this->_writeLink($objWriter, $element, true);
}
}
}
elseif($element instanceof PHPWord_Section_TextBreak)
{
$objWriter->writeElement('w:br');
}
$objWriter->endElement();
}
我引用它的方式是:
测试1。php:
$PHPWord = new PHPWord();;
$PHPWord->setDefaultFontName('Calibri');
$PHPWord->setDefaultFontSize(11);
$section = $PHPWord->createSection();
$textrun = $section->createTextRun();
$textrun->addText( "---------------");
$textrun->addTextBreak();
$textrun->addText( "$name", array('bold'=>true ) );
最后是在/lib/PHPWord/Section/TextRun中。php:
public function addTextBreak($count = 1)
{
for($i=1; $i<=$count; $i++)
{
$this->_elementCollection[] = new PHPWord_Section_TextBreak();
}
}
还有什么我可以帮忙的吗?我真的需要这个来工作,不能再把课程改成别的。
我大量格式化的文本,因此文本,但我需要的\n
后每行不是一个部分,因为它需要是相同的段落,所以有\n\n
将是不可接受的这种努力...
我肯定想我试过了,但也许我没有将它保存在Web服务器上,但将elseif移到更高的elseif块中就成功了。
if(count($elements) > 0)
{
foreach($elements as $element)
{
if($element instanceof PHPWord_Section_Text)
{
$this->_writeText($objWriter, $element, true);
}
elseif($element instanceof PHPWord_Section_Link)
{
$this->_writeLink($objWriter, $element, true);
}
elseif($element instanceof PHPWord_Section_TextBreak)
{
$objWriter->writeElement('w:br');
}
}
}
$objWriter->endElement();
}
如何在文本运行时添加文本分隔符或转到下一行/行?我试着只做
有人有使用PHPWord的经验吗?我使用Composer安装了它,就像我对许多其他模块所做的一样,但是当我运行“基本用法”示例时,什么都没有发生。(autoloader.php工作正常)。 如果我更改
我无法让和在中工作。 如果我没有在段落样式中包含或,那么该节前后将有一些空间。 如果我确实包含或,那么无论我为间距输入了什么,空格都将变为0。 我可以同时使用其他段落样式,例如,。 例子:
如果单元格内文本包含 \n ,将处理换行样式。 $format = new \Vtiful\Kernel\Format($fileHandle); $wrapStyle = $format->wrap()->toResource();
我在1-2年前用libGDX做了一个游戏,我可以在eclipse上运行它,它很有效。当我想导出jar文件时,我转到Export-Runnable jar file-这里我选择package required libraries并导出它。
问题内容: 如何替换在文本文件中找到的一行文本? 我有一个字符串,例如: 我想用更新它: (反之亦然) 我该如何完成? 顺便说一句,我只想替换已读取的行。不是整个文件。 问题答案: 在底部,我有一个通用的解决方案来替换文件中的行。但是首先,这是眼前特定问题的答案。辅助功能: 然后调用它: 原始文本文件内容: Output: New text file content: And as a note,