2015-05-06 13 views
5

Sto usando PHPWord per caricare un modello docx e sostituire tag come {test}. Funziona perfettamente.Converti codice HTML in documento usando PHP e PHPWord

Ma voglio sostituire un valore con codice html. La sostituzione diretta nel modello non è possibile. Ora c'è modo di farlo usando PHPWord, per quanto ne so.

Ho esaminato htmltodocx. Ma non funziona neanche, è possibile trasformare una pace di codice come <p>Test<b>test</b><br>test</p> in un markup di lavoro? Ho solo bisogno del codice di base, senza stile. ma i Linebreak devono funzionare.

risposta

7

Questo è il collegamento al github. Sta funzionando bene Html-Docx-js.

Ed è anche disponibile la demo here.

L'altra opzione è questa Link.

$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>"); 
    $templateProcessor->setValue('test', $toOpenXML); 
+0

Grazie per la risposta, funziona bene, tuttavia, voglio solo il codice del mio piccolo valore mc. –

+0

Posso elaborare ulteriormente questo codice documento. –

+0

Cosa intendi con questo? Se si utilizza qualsiasi codice con licenza gratuita, è sufficiente seguire i T & C di tale licenza. –

2

Grazie per la tua risposta, Varun.

La semplice libreria PHP H2OXML funziona per me https://h2openxml.codeplex.com/

$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>"); 
$templateProcessor->setValue('test', $toOpenXML); 

ora posso convertire il codice html da inserire utilizzando PHPWord.

3

Le altre risposte propongono H2OXML che supporta solo

  • grassetto, corsivo e sottolineato il testo

  • Bulled elenca

Come descritto nei loro documenti e il loro aggiornamento è stato in 2012.

Ho fatto qualche ricerca a nd ha trovato una soluzione molto carina:

$var = 'Some text'; 
$xml = "<w:p><w:r><w:rPr><w:strike/></w:rPr><w:t>". $var."</w:t></w:r></w:p>"; 

$templateProcessor->setValue('param_1', $xml); 

L'esempio precedente mostra come sarebbe un testo barrato. Invece di "w: strike" puoi usare "w: i" per italic o "w: b" bold, e così via. Non sono sicuro che funzioni su tutti i tag o meno.