[PHP] HTML (uit MySQL) naar MS Word

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Life
  • Registratie: Juli 2007
  • Laatst online: 09-12-2024
Ik heb een webapplicatie waarin ik veel documenten in de database bewaar. Het zijn dus geen losse bestanden (.docs). Deze documenten maak je aan door middel van TinyMCE (text-editor), waarna je ze vervolgens ook gewoon via deze editor kan bewerken. Het document wordt door TinyMCE geoutput als HTML. Dit is dus ook zodanig opgeslagen in de MySQL database.

Nu wil ik een optie bouwen dat de klant het document kan opslaan als Word-document. Na veel googelen en tweakers afzoeken ben ik helaas nog steeds niet tot een werkende functie gekomen.

Mijn server draait onder Linux, ofwel COM functies vallen sowieso al weg. Het is me wel al gelukt om naar een Word-doc te schrijven (en het aanmaken daarvan), maar deze convert de HTML niet in opmaak. Ik krijg dus een document vol HTML-codes.

De code van het converten naar Word is als volgt:

code:
1
2
header("Content-Type: application/vnd.ms-word");
header("Content-Disposition: attachment;filename=".$filename);


Wat ik me dus afvraag is hoe ik HTML omzet naar een Word-document.

Acties:
  • 0 Henk 'm!

  • cyberstalker
  • Registratie: September 2005
  • Niet online

cyberstalker

Eersteklas beunhaas

Heb je al eens naar UNO gekeken?

Ik ontken het bestaan van IE.


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het is denk niet zo eenvoudig om "echte" word documenten te maken, aangezien het geen open formaat is.

Hier staat wel uitgelegd hoe je met HTML een word document maakt, zoals je zelf ook al geprobeerd hebt.

Anders zou ik eens kijken of je niet gewoon een RTF bestand kunt maken. Die kun je ook gewoon in word openen, maar daar zal je meer resources voor kunnen vinden. ( bijvoorbeeld hier http://www.phpclasses.org/browse/package/1805.html, maar ik het het niet getest )

[ Voor 9% gewijzigd door Woy op 10-03-2009 14:19 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • DirkT
  • Registratie: Juli 2002
  • Niet online

DirkT

toet

Als .doc geen vereiste is zou ik naar het docx formaat kijken. Dat zou wel een open standaard moeten zijn.

Docx kan je lezen in alle office versies 2000 en hoger mits je daar zo'n addon voor hebt geinstalleerd. Deze kan je overigens gewoon officieel van Microsoft zelf krijgen. http://www.microsoft.com/...E9-4AEE-8F43-C6BB74CD1466

[ Voor 16% gewijzigd door DirkT op 10-03-2009 14:37 . Reden: linkje naar addon pack ]

iRacing profiel - FanaLEDs voor je racesimulatie displays en meer!


Acties:
  • 0 Henk 'm!

  • stappel_
  • Registratie: Augustus 2000
  • Laatst online: 14-09 12:59
* stappel_ heeft 4 jaar geleden ook gezocht op DOC output voor een project,
Ben er toen maar mee gestopt. We passen nu de volgende truc toe:
- maak een html document
- geeft deze de extensie .doc
- en heeft deze de juiste headers mee:
PHP:
1
2
3
4
5
6
7
8
9
10
    header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: File Transfer");
    session_cache_limiter("must-revalidate");
    header("Content-Type: application/vnd.ms-word");
    header("Content-Disposition: attachment; filename=\"test.doc\"");


Word kan deze prima inlezen en gebruiken.

Ubero: #2, Euler: #1, GOT: #1, Des: #1, Zeta: #1, Eon: #3, OGR-24: #3, OGR-25: #7,
LM: #7, AP: #5, DF: #19, D2OL: #37, SOB: #50, TSC: #63, RC5: #96


Acties:
  • 0 Henk 'm!

  • Life
  • Registratie: Juli 2007
  • Laatst online: 09-12-2024
Woy schreef op dinsdag 10 maart 2009 @ 14:19:
Het is denk niet zo eenvoudig om "echte" word documenten te maken, aangezien het geen open formaat is.

Hier staat wel uitgelegd hoe je met HTML een word document maakt, zoals je zelf ook al geprobeerd hebt.

Anders zou ik eens kijken of je niet gewoon een RTF bestand kunt maken. Die kun je ook gewoon in word openen, maar daar zal je meer resources voor kunnen vinden. ( bijvoorbeeld hier http://www.phpclasses.org/browse/package/1805.html, maar ik het het niet getest )
De 1e link heeft me goed geholpen! Het werkt nu zoals het moet. Ik was vergeten HTML tags mee te geven aan het Word-document, waardoor het als gewoon document werd gezien. Bedankt allemaal! _/-\o_
Pagina: 1