How to convert html to word using php?-ThrowExceptions

Exception or error:

I am trying to convert HTML to MS WORD document (.doc/.docx) with PHP script. With the available scripts from internet I am able to convert the text of HTML to doc. But I need total html with inline css will be in my doc.I made one script

$html = file_get_contents('html path');
$tags = "<br>";
$test = strip_tags($page,$html);
$breaks = array("<br />","<br>","<br/>");  
$text = str_ireplace($breaks, "\r\n", $test);  
$text = iconv('UTF-8', 'ASCII//TRANSLIT',$text);
$handle = fopen("newdoc.doc", "w+");
fwrite($handle, $text);

It’s working for the text content of HTML only.
But I can’t add images to it is there any way to do it ? Please Help, Thanks in advance.

How to solve:

just keep following code in top of the page need to convert:

<? header("Content-Type: application/");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("content-disposition: attachment;filename=Report.doc");


I would highly recommend PHPdocx as it does exactly what your asking for, but at a cost. I purchased it sometime ago and use it frequently.

require_once 'pathToPHPDocX/classes/';
$docx = new CreateDocx();
$docx->embedHTML($html, array('isFile' => true, 'downloadImages' => true));


I am currently working through something similar and have gone with

Huge amount of information on the site to get you started and you can style each element how you would like.

Images can be added simply with: $section->addImage($src, [$style]);

I would take a look. Its a bit more involved than what you are currently using, but allows you to do what you need.


I would highly recommend HTML_TO_DOC Class for Convert HTML to MS Word Document using PHP

You can use this Code for Header generation.

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="">

Leave a Reply

Your email address will not be published. Required fields are marked *