标签: phpword

使用TemplateProcessor在PHP.Word中添加图像

我不知道是否可以使用TemplateProcessor在PHPWord模板中添加图像.

我有一个文件(form.docx).该文档是一个模板.我阅读了字段(例如$ {name})并将其替换为文本.

$template = new TemplateProcessor('form.docx');
$template->setValue('name', $name);
Run Code Online (Sandbox Code Playgroud)

但现在,我想放一张图片,但我不知道我是怎么做的.我尝试这个:

$img='img.jpg';
$template->setValue('image',$img);
Run Code Online (Sandbox Code Playgroud)

不起作用.我尝试其他形式,创建一个部分并将此部分添加到模板但这失败了.

$phpWord = new PhpWord();
$section = $phpWord->createSection();   

$section->addImage('img.jpg', array('width'=>210, 'height'=>210, 'align'=>'center'));
$template = new TemplateProcessor('form.docx'); 
$template->setValue('image',$section).
Run Code Online (Sandbox Code Playgroud)

有人知道如何使用模板将图像放入.docx吗?

谢谢.

php docx phpword

5
推荐指数
1
解决办法
6732
查看次数

PHPWord的HTML阅读器不适用于表格?

当我使用Html阅读器将我的html转换为docx时,读者被切断了我的桌子.

PHP示例:

$reader = IOFactory::createReader('HTML');
$phpWord = $reader->load($this->getReportDir() . '/' . $fileName);
$writer = IOFactory::createWriter($phpWord);
$writer->save($this->getReportDir() . '/' . $fileName);
Run Code Online (Sandbox Code Playgroud)

表格示例:

<table>
    <tr>
        <td>? ?/?</td>
        <td>????? ?????????? ??????????? ??????????? ??????????? ??????</td>
        <td>?????????? ?????????? ????????</td>
        <td>% ?? ?????? ?????????? ?????????? ????????</td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

html php phpword

5
推荐指数
2
解决办法
5593
查看次数

使用PHP和PHPWord将HTML代码转换为doc

我正在使用PHPWord加载docx模板并替换标签{test}.这工作得非常好.

但我想用html代码替换值.不可能直接将其替换为模板.据我所知,现在有使用PHPWord的方法.

我看了htmltodocx.但它接缝它也无法工作,是否可以将代码的和平转换<p>Test<b>test</b><br>test</p>为工作的doc标记?我只需要基本代码,没有样式.但Linebreaks必须工作.

html php openxml phpword

5
推荐指数
1
解决办法
1万
查看次数

为什么 Office OpenXML 在标签之间拆分文本以及如何防止它?

我目前正在尝试使用PHPWord库及其模板系统处理 docx 文件。我已经找到并更新了这个库的路径(不记得名字,但它不重要)可以处理表(复制它的行,然后在每一行上使用 PHPWord 的标准 setValue())。

如果我创建自己的文档,xml中的数据是正常结构,所以要替换的变量 ${variable} 在它自己的标签中,如下所示:

<w:tbl>
    <w:tr>
        ...
         ${variable}
    </w:tr>
</w:tbl>
Run Code Online (Sandbox Code Playgroud)

我简化了代码,在实际代码中还有许多其他标签描述大小、样式等。

我的问题是我必须从其他人那里处理文件,我被禁止进行重大更改,我得到了一份文件,其中在某些时候它们是一个带有一个空白行的表格。我添加了 ${variable} 变量并通过 PHPWord 运行它。问题是,它失败了。经过一番研究,我发现源 XML 如下所示:

    ....
        ...
         ${va

        ...
         riab

        ...
         le}
    ....
Run Code Online (Sandbox Code Playgroud)

(再次大大简化,但你得到了图片)

这种结构对我来说是个问题,因为克隆行的函数使用 strpos()、substr() 和正则表达式来工作,并且不适用于这种结构(我无法想象这样做的优雅方式)。

所以问题是 - 有谁知道为什么 docx 这样做以及如何阻止他?我正在通过 word 而不是 PHP 寻找解决方案(我需要当前的函数无需太多编辑即可工作)

docx openxml phpword

4
推荐指数
1
解决办法
4730
查看次数

如何更改PHPWord表格单元格高度?

当我使用PHPTable创建一个简单的表时,行似乎有点太高了.我希望它们与字体具有相同的高度,并且在单元格中文本的下方或上方没有填充/间距..但是没有任何"填充"就无法使它工作...

码:

$styleTable = array('borderSize'=>0, 
                    'borderColor'=>'eeeeee',
                    'cellMargin'=>0, 
                    'spaceBefore' => 0, 
                    'spaceAfter' => 0,
                    'spacing' => 0);

$PHPWord->addTableStyle('myOwnTableStyle', $styleTable);

$table = $section->addTable('myOwnTableStyle');

foreach($aryData['json_data'] as $data) {
  $table->addRow();
  $table->addCell(4000)->addText($data['label'] . ':', array('bold'=>true));
  $table->addCell(8000)->addText($data['value']);
}
Run Code Online (Sandbox Code Playgroud)

html php phpword

4
推荐指数
1
解决办法
9135
查看次数

PHPWord 水平线 (&lt;hr /&gt;)

我目前正在使用 PHPWord 生成我的文档,但我想在文档中添加一条水平线。就像一个


在 HMTL 中。在 Word 中,您可以通过在 Enter 中键入三个下划线来完成此操作,但我想在生成的文档中使用它。

有人有关于此功能的更多信息吗?

谢谢!

php phpword

4
推荐指数
1
解决办法
1万
查看次数

如何使用 PhpWord 读取 Doc 文件?

最近我下载了从 github 下载的 php word,但我不知道如何通过这个读取 word 文件?这个库没有帮助。我看到一个与 php excel 相同的文件,但不知道如何使用 . 下面的文件:simple01 sample.php

<?php

error_reporting(E_ALL);

if(php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
    define('EOL', PHP_EOL);
}
else {
    define('EOL', '<br />');
}

require_once '../src/PHPWord.php';

// New Word Document
echo date('H:i:s') , " Create new PHPWord object" , EOL;
$PHPWord = new PHPWord();

// New portrait section
$section = $PHPWord->createSection();

// Add text elements
$section->addText('Hello World!');
$section->addTextBreak(2);

$section->addText('I am inline styled.', array('name'=>'Verdana', 'color'=>'006699'));
$section->addTextBreak(2);

$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>true, 'size'=>16));
$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
$section->addText('I am …
Run Code Online (Sandbox Code Playgroud)

php phpword

4
推荐指数
1
解决办法
2万
查看次数

PHPWord 损坏的文件?

我的基本 PHPWord 设置正在运行。

这是我的代码:

    <?php
  require_once 'PhpWord/Autoloader.php';
    \PhpOffice\PhpWord\Autoloader::register();



    function getEndingNotes($writers)
{
    $result = '';
    // Do not show execution time for index
    if (!IS_INDEX) {
        $result .= date('H:i:s') . " Done writing file(s)" . EOL;
        $result .= date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" . EOL;
    }
    // Return
    if (CLI) {
        $result .= 'The results are stored in the "results" subdirectory.' . EOL;
    } else {
        if (!IS_INDEX) {
            $types …
Run Code Online (Sandbox Code Playgroud)

php ms-word docx openxml phpword

4
推荐指数
1
解决办法
3626
查看次数

phpword addText()align justify

当我使用addText()它时align=center,左,右工作正常,但当我尝试使用align=justify脚本工作没有问题,但当我尝试打开.docx文件时,它给我错误,文件没有打开.

如果有人知道解决方案,将不胜感激.

$text = "some text";
$PHPWord->addFontStyle('r2Style', array('bold'=>false, 'italic'=>false, 'size'=>12));
$PHPWord->addParagraphStyle('p2Style', array('align'=>'center', 'spaceAfter'=>100));
$section->addText($text, 'r2Style', 'p2Style');
Run Code Online (Sandbox Code Playgroud)

phpword

4
推荐指数
2
解决办法
1万
查看次数

PHP word doc:捕获特殊字符

我正在做一个作业,我需要捕获在 html 上生成的内容并将其发送到 word 文档,以便可以进一步发送。我已经捕获了内容并使用json对象将其发送到php并生成了word文档,但是当html包含特殊字符时,它会导致word文档被损坏。我尝试htmlspecialcharsaddText函数中使用,但没有帮助。

这是我的 php 代码

\PhpOffice\PhpWord\Autoloader::register();
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$jsonData2 =json_decode($_POST['outputData'],true);
foreach ($jsonData2 as $key => $value) {
        $section-> addTextBreak();
        $section->addText($key, array('size' => 16, 'bold' => true, 'color' => '#3b5999'));
        $section-> addTextBreak(2);
        foreach ($value as $key => $value) {
        $section->addText($value, array('size' => 11));
        $section-> addTextBreak();  
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以如何捕获特殊字符并将其显示到word doc,这样就不会导致文件损坏

php json phpword

4
推荐指数
1
解决办法
3590
查看次数

标签 统计

phpword ×10

php ×8

docx ×3

html ×3

openxml ×3

json ×1

ms-word ×1