È possibile eseguire una semplice ricerca e sostituzione per testo su un documento di Word utilizzando PHPWord? Da quello che ho visto, il più vicino che puoi ottenere è semplicemente AGGIUNGERE il testo in una sezione, e non puoi manipolare il testo esistente tranne il font, ecc. In caso contrario, c'è qualcosa di gratuito che posso usare per fare questo?Ricerca e sostituzione di testo con PHPWord
8
A
risposta
3
No, PHPWord è progettato solo per creare file docx.
In ogni caso, un file docx è semplicemente una raccolta di file xml in un contenitore zip. In generale ciò che devi fare è:
- Rinomina xxx.docx a xxx.zip
- Unzip in una cartella temporanea
- In temporary_folder/parola letta in document.xml che contiene tutto il testo della documento (ad eccezione di intestazioni e piè di pagina)
- sostituire ciò che è necessario sostituire
- Salvare il document.xml
- Zip l'intera cartella temporanea di nuovo a xxx.docx
Attenzione che Word ha la tendenza a dividere le parole in più sezioni, a seconda di cosa è stato fatto con il documento al punto di salvataggio. Ci possono essere segnalibri, cambiamenti di lingua, controllo ortografico o tag di formatura dei personaggi nel mezzo di qualsiasi parola.
Buona fortuna per trovare un modo sicuro per gestire questo.
4
È possibile utilizzare setValue per ottenere ciò che si sta cercando. Dai un'occhiata ai campioni.
Ecco il metodo: https://github.com/PHPOffice/PHPWord/blob/e35838f7d7928b2308df3f7f0ef6d49bf96f453c/src/PhpWord/Template.php#L131
C'è un modo per sostituire i segnaposto in un link? Ho cercato di farlo ma non funziona con setValue() – Vishnu