PHP Create Word Document from HTML

In this article, you will learn how to create a word document in doc or docx using PHP. The conversion of HTML into MS Word Document chiefly utilized in the web application to produce .doc/.docx record with dynamic HTML content. The Server side script is needed to dynamically export data from HTML to Word Document. The MS word document can be quickly generated with HTML content using PHP script. There are many third-party library available for HTML to Word conversion. But, you can easy convert the HTML content to Word Document using PHP without any external library.

PHP provides features to add HTTP headers. Like, we can set HTTP header to download the content or attachment and we can also set to show a 'Save as' dialog box while downloading on the browser. So in this example, we have added the content headers to make the generated doc file downloadable. For file formatting, we have utilized word-accommodating CSS. It is important to use the inline CSS instead of external CSS file.

Create And Download Word Document in PHP

Here is the script to generate and download word document. So, copy and paste this code either on the localhost or on the server, only you will have to change the body element content.

$filename = 'demo.doc';
header("Content-Type: application/force-download");
header( "Content-Disposition: attachment; filename=".basename($filename));
header( "Content-Description: File Transfer");

$content = '<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:m=""= '
        .'<head><meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">'
        .'<!--[if gte mso 9]>'
            font-family: Arial;
            size:215.9mm 279.4mm;  /* A4 */
            margin:14.2mm 17.5mm 14.2mm 16mm; /* Margins: 2.5 cm on each side */
        h2 { font-family: Arial; font-size: 18px; text-align:center; }
        p.para {font-family: Arial; font-size: 13.5px; text-align: justify;}
        .'<h2>Welcome To eTutorialsPoint</h2><br/>'
        .'<p class="para">'
        .'Our aim is to spread the knowledge. This website is developed for education purpose.'
.'It contain web development tutorials, interview questions and answers and some useful development resources '
.'This website is fully responsive. We can easily study the resources on the smart phone.' .'</p>' .'</body>' .'</html>'; echo $content; ?>

In the above example, attributes in HTML tag are MS office attributes. The XML tags in the HEAD element specify the manner in which the contents display in the word document.


The @page css is used to set the style properties of the document. Within this CSS, we can set margins, page breaks, orphans of the generated document.

    font-family: Arial;
    size:215.9mm 279.4mm;  /* A4 */
    margin:14.2mm 17.5mm 14.2mm 16mm; /* Margins: 2.5 cm on each side */

Related Articles

How to display PDF file in PHP from database
How to read CSV file in PHP and store in MySQL
Create And Download Word Document in PHP
PHP SplFileObject Standard Library
Simple File Upload Script in PHP
Sending form data to an email using PHP
Preventing Cross Site Request Forgeries(CSRF) in PHP
PHP code to send email using SMTP
Simple pagination in PHP
Simple PHP File Cache
PHP Connection and File Handling on FTP Server
Sending form data to an email using PHP
Recover forgot password using PHP and MySQL

Read more articles

General Knowledge

Learn Popular Language