在同一文档中重复使用模板[PHPword]

d_unknown

我将PHPWord用作My Codeigniter项目中的库。在我的项目中,我想生成一个使用已在工作的模板的.docx文件。该模板中有一个Sticker,它将通过查询数据库中的数据来填充它。由于我想在一个文档中生成多个贴纸,因此我必须复制已经使用的第一个模板并添加一个分页符。但这是行不通的。我无法打开文件。它说:“内容存在问题”

我在这里工作示例模板: 在此处输入图片说明

这是我的代码:

public function Export(){ 

    $this->load->library('PHPWord');
    $this->load->model('person_model');

    $PHPWord = new PHPWord();
    $section = $PHPWord->createSection();

    $persons= $this->person_model->DataSticker();

    $document = $PHPWord->loadTemplate('application/controllers/Sticker.docx');
    $counter=1;
    foreach($persons as $row){ 
        $this->Doc($document,$counter,$row);
        $counter+=1;
        if($counter>6){
            $counter=1;
            $section->addObject($document); 
            $section->addPageBreak();
            $document = $PHPWord->loadTemplate('application/controllers/Sticker.docx');
            $this->Doc($document,$counter,$row);
        }

    }  



     // Save File
    $objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
    $filename = 'nameOfFile.docx';
    $objWriter->save( $filename);;
    header('Content-Description: File Transfer');
    header('Content-type: application/force-download');
    header('Content-Disposition: attachment; filename='.basename($filename));
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: '.filesize($filename));
    readfile($filename);
    unlink($filename);




}
public function Doc($document,$counter,$row){
     $document->setValue('Fname'.$counter, $row->fname);
        $document->setValue('Mname'.$counter, $row->mname);
        $document->setValue('Lname'.$counter, $row->lname);
        $document->setValue('DOB'.$counter, $row->dob);
        $document->setValue('POB'.$counter,$row->pob);
        $document->setValue('Age'.$counter, $row->age);
        $document->setValue('School'.$counter, $row->school); 

}

非常感谢您的帮助。

弹射

此答案与0.12.0版本有关(可能也适用于0.13.0)...您可能使用的是旧版本,因为您使用了不赞成使用的loadTemplate函数。

为了回答您的最新问题,我认为您不能将模板与addObject一起使用(好的,不是100%肯定,但是一定要引用)。但是一种可行的方法是使用单个模板文件,在该文件中,您定义了贴纸的一个页面模板(包括分页符),并用模板块标签包裹起来,即:

${CLONEBLOCK}
Here is your sticker page definition (6 stickers + pagebreak)...
${/CLONEBLOCK}

然后在您的代码中,您将根据需要多次克隆此块:

// the class path is probably something different with your codeigniter
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('application/controllers/Sticker.docx');    
$templateProcessor->cloneBlock('CLONEBLOCK', count($persons)/6);

您将非常相似地分配模板值:

   // note! add the limit 1 as the third parameter (otherwise it will
   // write the this value on all of the pages)
   $templateProcessor->setValue('Mname'.$counter,  $row->mname, 1);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一文档中重复使用模板[PHPword]

来自分类Dev

在同一文档中重复使用export.function

来自分类Dev

猫鼬-故意在同一文档中插入重复属性

来自分类Dev

猫鼬-故意在同一文档中插入重复属性

来自分类Dev

在多个网站中引用同一文档

来自分类Dev

在多个网站中引用同一文档

来自分类Dev

同一文档中的img src = svg

来自分类Dev

如何连接同一文档中的数组?

来自分类Dev

等同于<iframe>使用同一文档中的内容

来自分类Dev

使用同一文档中的值从JSONB文档中的数组中选择项目

来自分类Dev

从同一文档中将子文档添加到数组中

来自分类Dev

根据同一文档中的时间戳属性更新Firestore文档上的属性

来自分类Dev

使用字段值更新同一文档中的另一个字段

来自分类Dev

如何多次打开同一文档?

来自分类Dev

如何多次打开同一文档?

来自分类Dev

$ _POST与表单在同一文档上

来自分类Dev

使用选择字符串在同一文档中查找2个字符串

来自分类Dev

使用BeautifulSoup进行XML解析:在同一文档中检索具有相同ID的多个文本内容

来自分类Dev

如何在mongo中检查同一文档中的两个值?

来自分类Dev

在内存中的XQuery中多次编辑同一文档节点

来自分类Dev

在WriteBatch中写入同一文档会导致Firebase中多次写入?

来自分类Dev

如何在mongo中检查同一文档中的两个值?

来自分类Dev

比较MarkLogic中同一文档的两个元素

来自分类Dev

同一文档中3个字段的平均值

来自分类Dev

MongoDb中的.find()打印同一文档的多次出现

来自分类Dev

MS WORD。如何在同一文档中创建指向图片的链接?

来自分类Dev

如何在Evince中打开同一文档的多个实例?

来自分类Dev

同一文档中3个字段的平均值

来自分类Dev

MongoDB:更新同一文档的嵌套元素中的字段

Related 相关文章

  1. 1

    在同一文档中重复使用模板[PHPword]

  2. 2

    在同一文档中重复使用export.function

  3. 3

    猫鼬-故意在同一文档中插入重复属性

  4. 4

    猫鼬-故意在同一文档中插入重复属性

  5. 5

    在多个网站中引用同一文档

  6. 6

    在多个网站中引用同一文档

  7. 7

    同一文档中的img src = svg

  8. 8

    如何连接同一文档中的数组?

  9. 9

    等同于<iframe>使用同一文档中的内容

  10. 10

    使用同一文档中的值从JSONB文档中的数组中选择项目

  11. 11

    从同一文档中将子文档添加到数组中

  12. 12

    根据同一文档中的时间戳属性更新Firestore文档上的属性

  13. 13

    使用字段值更新同一文档中的另一个字段

  14. 14

    如何多次打开同一文档?

  15. 15

    如何多次打开同一文档?

  16. 16

    $ _POST与表单在同一文档上

  17. 17

    使用选择字符串在同一文档中查找2个字符串

  18. 18

    使用BeautifulSoup进行XML解析:在同一文档中检索具有相同ID的多个文本内容

  19. 19

    如何在mongo中检查同一文档中的两个值?

  20. 20

    在内存中的XQuery中多次编辑同一文档节点

  21. 21

    在WriteBatch中写入同一文档会导致Firebase中多次写入?

  22. 22

    如何在mongo中检查同一文档中的两个值?

  23. 23

    比较MarkLogic中同一文档的两个元素

  24. 24

    同一文档中3个字段的平均值

  25. 25

    MongoDb中的.find()打印同一文档的多次出现

  26. 26

    MS WORD。如何在同一文档中创建指向图片的链接?

  27. 27

    如何在Evince中打开同一文档的多个实例?

  28. 28

    同一文档中3个字段的平均值

  29. 29

    MongoDB:更新同一文档的嵌套元素中的字段

热门标签

归档