2011-02-11 10 views
5

Ho bisogno di convertire un file html in doc. Sto usando html2pdf per la conversione in pdf.Come convertire html in doc in php

Esiste uno stesso tipo di libreria per html2doc?

(PS deve essere libero/open source)

EDIT

Dopo Mark Eirich commento ..

Qui ci sono due screenshot. Il documento di Word non è allineato correttamente. Controlla lo scorrimento y nel documento word. WORD document, check y scroll..

html file, on browser..

tag corpo è: -

<body style="margin-left:350px; margin-right:350px;"> 

ho provato a regolarla ma nessun effetto ..

EDIT 2

dopo che Mark Eirich secondo commento sono venuto a sapere che la parola sta prendendo le cose in pixel non io n% di età .. Sto avendo l'ultimo numero di back ground .. Qualsiasi aiuto .. si prega di controllare le due schermate. La differenza è la scatola esterna. e questo documento generato da html sembra strano.

Original word file

html generated doc file

+0

Microsoft Word può leggere HTML senza alcuna conversione. Basta terminare il nome del file con .doc e fatto. –

+0

@ Mark Eirich non funziona in modo corretto .. controlla la parte di modifica ... –

+0

@piemesons: Sadness. Non ho molta esperienza con Word.Tuttavia, prova questo (1) imposta una larghezza sul corpo, (2) imposta i margini in pollici "pollici" o centimetri "cm", o (3) aggiungi un ulteriore involucro all'interno del corpo e imposta margine/larghezza su di esso ; forse Word ignora il tag del corpo. Si potrebbe anche provare a generare HTML in Word e quindi visualizzarlo per vedere cosa sta facendo Word per impostare i margini. –

risposta

1

al fine di convertire in Microsoft Word è necessario un server abilitato COM (con sistema operativo Windows e Office su di esso). Se si dispone di un tale server

$word = new COM("word.application") or die ("couldnt create an instance of word"); 

dovrebbe funzionare !. Leggi http://php.net/manual/en/book.com.php per i dettagli.

In caso contrario, il tuo migliore scatto su html2doc è html2rtf che viene ottenuto con una libreria come http://paggard.com/projects/rtf.generator/ o http://sourceforge.net/projects/phprtf/.

Poi, dopo aver creato il formato RTF che si servono al browser con un colpo di testa doc

header("Content-type: application/vnd.ms-word"); 
header("Content-Disposition: attachment;Filename=document_name.doc"); 

Se l'utente ha la parola allora sarà aperta per gestire il file.

Salvare anche un rtf come doc è ok e la parola si aprirà in visualizzazione layout senza lamentele. Si può anche servire HTML con l'intestazione di cui sopra, ma il problema è che Word viene aperto in visualizzazione Web e che è male :)

+4

Ha chiesto una soluzione gratuita/open source! –

+0

Che cos'è la "vista Web" e perché è cattiva? (Non ho molta familiarità con Word.) –

+1

phprtf è open source, sia GPL che LGPL, e in realtà è messo insieme bene, è un paradiso rispetto alle altre librerie php html2rtf, beh, quelli che sono html2rtf tecnicamente solo nel nome. – asnyder

5

La risposta IMO sarebbe no, per i seguenti motivi:

documenti di Microsoft Office sono estremamente complessi nel modo in cui sono progettati, non c'è solo un file formattato con riferimenti ad oggetti come le immagini, c'è un tipo di file system all'interno di se stesso per gestire i dati binari di questi oggetti.

Permettetemi di portare in una citazione da nostra stessa Joel:

Se avete iniziato a leggere questi documenti con la speranza di trascorrere un fine settimana a scrivere del codice spiffy che importa documenti Word nel vostro sistema di blog, o crea Fogli di calcolo in formato Excel con i tuoi dati finanziari personali, la complessità e la lunghezza delle specifiche probabilmente ti hanno curato molto rapidamente. Un programmatore normale sarebbe concludere che i formati di file binari di ufficio:

  • sono deliberatamente offuscati
  • sono il prodotto di una mente folle Borg
  • sono stati creati dai programmatori follemente cattivi
  • e sono impossibili da leggere o creare correttamente.

si sarebbe sbagliato su tutti e quattro i conteggi ....

Leggi più in basso per una possibile soluzione:

Se davvero si vuole generare fantasia formato Word documenti, la soluzione migliore è creare un documento RTF. Tutto ciò che Word può fare può essere espresso in formato RTF, ma è un formato di testo, non binario, quindi puoi cambiare le cose nel documento RTF e funzionerà ancora. È possibile creare un documento ben formattato con segnaposti in Word, salvare come RTF e quindi utilizzare la sostituzione di testo semplice, sostituire i segnaposto al volo. Ora hai un documento RTF che ogni versione di Word si aprirà felicemente.

@source: http://www.joelonsoftware.com/items/2008/02/19.html

Alcuni link che potrebbero interessarti lungo il vostro viaggio:

Anche se, provare ad aprire un file di Word con winrar;), forse la creazione di un archivio con alcune intestazioni e poi cambiando il l'estensibilità sarà sufficiente, Mai provato

+0

Perché il voto negativo? – RobertPitt

+2

il mio pensiero è perché qualcuno ha dato un collegamento a una soluzione di lavoro e hai detto che non è possibile. Non vale neanche la pena di un downvote dato che hai discusso abbastanza bene e mi è piaciuto leggere l'input di Joel sull'argomento. – ajacian81