Ich habe eine docx Datei und ich muss etwas Text ersetzen. Dies geschieht innerhalb des Codeigniter-Frameworks; Hier ist der Code:
%Vor%Wenn ich die neue Datei öffne, bekomme ich immer noch "Ersetzename" von "Neu". "Ersetzename" ist mit Verdana-Schrift, 9pt Schriftgröße (keine Unterstreichung oder fett) formatiert. Warum es nicht funktioniert? Das Entfernen von $ {} aus der setValue-Funktion (und aus der doc-Datei) funktioniert
Ich fand die Lösung in Ссылка ... das Problem scheint zu sein, wenn Word seinen eigenen Code generiert.
für die Lösung, benennen Sie einfach die Erweiterung Ihrer Vorlage in zip um, checken Sie eine Datei mit dem Namen "document.xml" in den Ordner "word" ein und suchen Sie Ihren Code-Wert ... sollte so aussehen:
%Vor% Es stellt sich heraus, dass beim Hinzufügen von Text zu einer Word-Datei manchmal zusätzliche Tags in der zugrunde liegenden XML-Datei erstellt werden. So (Pseudocode) ${NAME}
kann <tag1>${</tag1><tag2>NAME</tag2><tag3>}</tag3>
Aus diesem Grund kann phpword Ihre Nadel nicht finden.
Ich benutze einen Mac mit Microsoft Word und ich kann einfach den gesamten Inhalt der Word-Datei ausschneiden und sie wieder einfügen.
Word erstellt daraufhin die zugrunde liegende XML-Datei neu, in der $ {NAME} 1 Tag statt 3 ist.
Fügen Sie einfach 2 Funktionen zur Datei "TemplateProcessor.php"
hinzu %Vor%Wie zu verwenden: Verwenden Sie ein Array als einzigen Parameter der Funktion "setValueAdvanced", wobei "key" - ein Wort, das wir ersetzen wollen, und "value" - eine Phrase, die wir einfügen möchten. Wichtig: Innerhalb einer MS Word-Datei verwenden Sie "$ {word_to_replace}", um ein Wort, das wir ersetzen möchten, zu "markieren", aber der Schlüssel eines Arrays sollte "word_to_replace" sein, ohne "$ {}"
Beispielcode:
%Vor%hier versuche ich und arbeite gut,
Die FunktionsetValue funktioniert nicht, da sie das Format des Wortes nach dem Generieren in das Web enthält. damit der Text, den du ersetzen kannst, nicht gefunden wird.
die Lösung ist Gib einfach dein $ {replaceKey} in den Editor ein und kopiere es in deine_Tabelle.docx es funktioniert für mich.
notepad macht alle Word-Formate nicht in der Vorlage enthalten, so dass die Funktion setValue sie wie erwartet finden kann.
Ich hoffe, es hilft euch.