我非常感谢有人帮忙。谷歌搜索根本没有提供答案。
我正在使用PHPWord从html表单中读取26个html输入字段。所有输入字段的类型都是“文本”。我的.docx模板基于位于'Examples'文件夹中的'Template.docx',并使用格式$ {pattern}和setValue()方法包含相同数量的变量。
我的问题是phpWord只读取了一半的输入字段,剩下的就是空白,或者在两种情况下它只是打印出变量$ {pattern}。
模板是用MS Word编写的,因为在Libreoffice Writer中第二次遇到MS Word格式错误的问题。
Template.php的代码:
<?php
require_once '../PHPWord.php';
$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('Template_LRX.docx');
// Kundendaten
$document->setValue('kname', $_POST['namekunde']);
$document->setValue('kvorname', $_POST['vorname']);
$document->setValue('kstrasse', $_POST['strasse']);
$document->setValue('kplz', $_POST['plz']);
$document->setValue('kort', $_POST['ort']);
$document->setValue('kemail', $_POST['emailkunde']);
// Daten für die Berechnung
$document->setValue('beguenstigt', $_POST['beguenstigter']);
$document->setValue('kgebdat', $_POST['d1'] . $_POST['m1'] . $_POST['y1']);
$document->setValue('klebenserwartung', $_POST['lebenserwartung']);
$document->setValue('kimmo', $_POST['immobilie']);
$document->setValue('kimmowert', $_POST['verkaufspreis'] . 'Euro');
$document->setValue('ksabschlag', $_POST['sabschlag'] . '%');
$document->setValue('kanzahlung', $_POST['anzahlung'] . 'Euro');
$document->setValue('kmiete', $_POST['mietzins'] . 'Euro');
// Ergebnis
$document->setValue('lrlaufzeit', $_POST['lebenserwartung']);
$document->setValue('wertimmo', $_POST['immowert']);
$document->setValue('lrsa', $_POST['sicherheitsabschlag']);
$document->setValue('lrwohnrecht', $_POST['wertwohnrecht']);
$document->setValue('lranzahlung', $_POST['ausgabeanzahlung']);
$document->setValue('lrbasis', $_POST['basis']);
$document->setValue('lrjrente', $_POST['jleibrente']);
$document->setValue('lrmrente', $_POST['mleibrente']);
// Berater
$document->setValue('bname', $_POST['nameberater']);
$document->setValue('btelefon', $_POST['telefon']);
$document->setValue('datum', $_POST['datum']);
// Verarbeitung
$document->save('Leibrentenberechnung.docx');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="Leibrentenberechnung.docx"');
readfile('Leibrentenberechnung.docx');
?>