تبدیل HTML به Word در PHP بیشتر برای اپلیکیشن هایی از وب استفاده می شود که فایل .doc
/.docx
با محتوای داینامیک تولید می کنند.
داکیومنت ورد مایکروسافت (MS) محبوب ترین فرمت فایل برای اکسپورت (گرفتن خروجی) محتوا برای استفاده آفلاین است.
قابلیت اکسپورت محتوای HTML به فایل ورد می تواند به راحتی با جاواسکریپت پیاده سازی شود.
اما، اگر می خواهید محتوای پویا (Dynamic) را به داکیومنت تبدیل کنید، عملیات سمت-سرور نیاز خواهد بود.
امکان گرفتن خروجی سرورساید (server-side) به word برای تبدیل محتوای داینامیک HTML به فایل ورد و دانلود آن به عنوان فایل .docx
بسیار کاربردی و مفید است.
در این آموزش PHP، به شما نحوه تبدیل HTML به Word در PHP را نشان می دهیم.
کتابخانه تبدیل HTML به Word (فرمت DOC/DOCX)
HTML_TO_DOC
یک کلاس سفارشی است که به ما کمک می کند تا داکیومنت ورد بسازیم و محتوای ساختاربندی شده HTML به فایل WORD تبدیل کنیم.
setDocFileName()
– نام فایل را مشخص می کند.setTitle()
– عنوان داکیومنت را مشخص می کند.getHeader()
– بخش هدر داکیومنت را می سازد.getFooter()
– بخش فوتر داکیومنت را می سازد.createDoc()
– فایل فرد با فرمت.docx
ایجاد می کند._parseHtml()
– تجزیه و فیلتر HTML از سورس.write_file()
– محتوا را داخل فایل word قرار می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<?php /** * Convert HTML to MS Word document * @name HTML_TO_DOC * @author NetParadis * @link https://www.netparadis.com */ class HTML_TO_DOC { var $docFile = ''; var $title = ''; var $htmlHead = ''; var $htmlBody = ''; /** * Constructor * * @return void */ function __construct(){ } /** * Set the document file name * * @param String $docfile */ function setDocFileName($docfile){ } /** * Set the document title * * @param String $title */ function setTitle($title){ } /** * Return header of MS Doc * * @return String */ function getHeader(){} /** * Return Document footer * * @return String */ function getFotter(){ } /** * Create The MS Word Document from given HTML * * @param String $html :: HTML Content or HTML File Name like path/to/html/file.html * @param String $file :: Document File Name * @param Boolean $download :: Wheather to download the file or save the file * @return boolean */ function createDoc($html, $file, $download = false){ } /** * Parse the html and remove <head></head> part if present into html * * @param String $html * @return void * @access Private */ function _parseHtml($html){ } /** * Write the content in the file * * @param String $file :: File name to be save * @param String $content :: Content to be write * @param [Optional] String $mode :: Write Mode * @return void * @access boolean True on success else false */ function write_file($file, $content, $mode = "w"){ } } |
کد کامل کلاس HTML_TO_DOC
را از باکس دانلود دریافت کنید
تبدیل HTML به Word
مثال زیر، کد مثال تبدیل محتوای HTML به داکیومنت MS word و ذخیره آن به عنوان یک فایل .docx
توسط کلاس HTML_TO_DOC
را نشان می دهد.
۱. بارگذاری و ایجاد آبجکت از کلاس HTML_TO_DOC
1 2 3 4 5 |
// Load library include_once 'HtmlToDoc.class.php'; // Initialize class $htd = new HTML_TO_DOC(); |
۲. مشخص کردن محتوای HTML که می خواهید تبدیل کنید.
1 2 3 |
$htmlContent = ' <h1>Hello World!</h1> <p>This document is created from HTML.</p>'; |
نکته ۱: می توانید صفحه وب را به تابع file_get_contents پاس بدید و خروجی آن که کدهای صفحه است را دریافت و داخل متغیر $htmlContent
ذخیره کنید.
نکته ۲: با دریافت محتوای یک Url دیگر احتمال دارد که بدلیل لود نشدن CSS ها خروجی مناسبی در فایل ورد دریافت نکنید. پس در اینجا از HTML خالص استفاده کردیم.
۳. فراخوانی تابع createDoc()
برای تبدیل HTML به Word در PHP
- مشخص کردن متغیر حاوی محتوای HTML (
$htmlContent
) - مشخص کردن نام داکیومنت برای ذخیره فایل ورد (
my-document
)
1 |
$htd->createDoc($htmlContent, "my-document"); |
دانلود فایل word :
برای دانلود فایل ورد, پارامتر سوم متد createDoc()
را TRUE
قرار می دهیم.
1 |
$htd->createDoc($htmlContent, "my-document", 1); |
می توانید برای نام داکیومنت خود یک فرمت ایجاد کنید. مثلا تاریخ فعلی به علاوه زمان را به آخر آن اضافه کنید :
1 |
$docName = “my-document-”.time().date(Y-m-d-h-i-s); |
ساخت سند word از فایل HTML
می توانید با مشخص کردن نام فایل HTML، محتوای فایل HTML را به سند word تبدیل کنید.
جمع بندی
کتابخانه های جانبی مختلفی برای تبدیل HTML به Word در PHP وجود دارند.
اما، می توانید عملیات تبدیل محتوای HTML به داکیومنت ورد را بدون استفاده از کتابخانه (library) جانبی انجام بدید.
کلاس HTML_TO_DOC
معرفی شده توسط ما یک راه آسان برای تبدیل محتوای داینامیک HTML به سند word و ذخیره/دانلود آن به عنوان فایل .docx
توسط PHP است.
شما ما توانید این کلاس را بنابر نیاز خود توسعه و سفارش سازی کنید تا در پروژه شما بهترین کارایی را داشته باشد. همچنین بطور کامل از یونیک و زبان فارسی پشتیبانی می کند
امیدوارم از آموزش تبدیل HTML به Word در PHP نهایت استفاده را برده باشید.
برای دانلود سورس کد کامل این آموزش از باکس دانلود استفاده کنید.
هر سوالی داشتید، از قسمت نظرات ارسال کنید. سریعا، پاسخگوی سوالات شما هستیم.
سلام. خسته نباشید
هنگام خروجی خطای Parse error: syntax error, unexpected ‘<<' (T_SL) میاد. وقتی function getHeader رو پاک میکنم خروجی ورد ایجاد میشه ولی در فایل ورد، متن با تگ های html نمایش میدهد.
اگر امکان داره راهنمایی بکنین ممنون میشم.
سلام. ورژن php رو پایین بیارید اوکی میشه