Steps to follow :
1)
Install DOMPDF 0.6.0 or greater (Recommended : 0.6.0_beta3 )
2)
Enable the MBString PHP extension.
3) Load
a font supporting your characters into DOMPDF.
4)
Configure DOMPDF for Unicode support.
5)
Create a compatible HTML document.
First two steps has already been
covered in previous post. Check here : dompdf : HTML to PDF Converter in PHP
3) We are going to use web-based
font prep tool to install font.
This option
is provided for users who are unable to set up the ttf2ufm application. This
tool produces an archive containing the necessary font metrics file(s), the
original font file(s), and a sample dompdf_font_family_cache that you should be
able to use with your DOMPDF installation. AfterSimply provide a font name and
the TTF file(s) (at a minimum you must provide a font file for the base
variant); select the font parser (the PHP-based parser is recommended for
larger fonts); and choose the version of DOMPDF you are using. After you submit
the form the tool should return an archive containing the necessary files.
Extract the contents of this archive into your DOMPDF font directory (typically
dompdf/lib/fonts). If you have not previously installed other fonts you can
rename dompdf_font_family_cache.sample to dompdf_font_family_cache. If you have
already installed other fonts you will need to manually add the entries for
your font to the dompdf_font_family_cache.
Follow these steps.
a) Download ttf
file from internet. For example I just downloaded ‘Asman’ font ttf file from
http://www.urbanfonts.com/fonts.php?fontauthor=2761
Asman font download link : http://www.urbanfonts.com/download.php?file=asman.zip
b)
Find the web-based font prep tool at http://eclecticgeek.com/dompdf/load_font.php.
c)
Provide Font Name : Asman and TTF file we had downloaded in step (a).
d) After submit you will get a file named ‘dompdf_fonts.zip’. Save it. Extract it and you
d) After submit you will get a file named ‘dompdf_fonts.zip’. Save it. Extract it and you
will find three files.
i)
ASMAN.ttf ii) ASMAN.ufm iii) dompdf_font_family_cache.sample
Copy
ASMAN.ttf and ASMAN.ufm files in \dompdf\lib\fonts\ folder.
e)
Find the code of related font from downloaded dompdf_font_family_cache.sample
file and add it at the end of ..\dompdf\lib\fonts\dompdf_font_family_cache.sample
file. For example:
<?php return array (
'sans-serif' =>
array (
'normal' => DOMPDF_FONT_DIR .
'Helvetica',
'bold' => DOMPDF_FONT_DIR .
'Helvetica-Bold',
'italic' => DOMPDF_FONT_DIR .
'Helvetica-Oblique',
'bold_italic' =>
DOMPDF_FONT_DIR . 'Helvetica-BoldOblique',
),
'times' =>
array (
'normal' => DOMPDF_FONT_DIR .
'Times-Roman',
'bold' => DOMPDF_FONT_DIR .
'Times-Bold',
'italic' => DOMPDF_FONT_DIR .
'Times-Italic',
'bold_italic' =>
DOMPDF_FONT_DIR . 'Times-BoldItalic',
),
……………………………………………………………………
……………………………………………………………………
……………………………………………………………………
……………………………………………………………………
'asman' =>
array (
'normal' => DOMPDF_FONT_DIR .
'ASMAN',
'bold' => DOMPDF_FONT_DIR .
'ASMAN',
'italic' => DOMPDF_FONT_DIR .
'ASMAN',
'bold_italic' => DOMPDF_FONT_DIR
. 'ASMAN',
),
) ?>
4)
Configure DOMPDF for Unicode support
For DOMPDF to handle
your characters correctly you must enable Unicode support in your
configuration. Edit dompdf_config.inc.php or dompdf_config.custom.inc.php so
that DOMPDF_UNICODE_ENABLED is true. Without enabling this setting your text
will be re-encoded to Windows ANSI when inserted into the PDF and any
characters that fall outside this encoding will be converted to question marks.
5) Create a
compatible HTML document
For DOMPDF to
correctly parse your document you must let it know what encoding is used. To do
this place a meta tag in the head of your document that specifies the encoding.
We recommend encoding documents using UTF-8 for greatest compatibility.
However, you should be able to use other encodings so long as the computer
where DOMPDF is installed supports the specified encoding.
Example :
test.php
<?php
require_once("../dompdf_config.inc.php");
$html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Table</title>
<style>
body{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
table tr th{
text-align:left;
vertical-align:top;
}
.italic_text{
require_once("../dompdf_config.inc.php");
$html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Table</title>
<style>
body{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
table tr th{
text-align:left;
vertical-align:top;
}
.italic_text{
font-family:
asman,
font-style:italic;
font-size:12px;
line-height:14px !important;
}
div{
text-align:center;
}
</style>
</head>
<body>
<div><h1>Test Document</h1></div>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="italic_text"><h3>DirtyhandsPHP</h3></td>
</tr>
</table>
</body>
</html>';
if ( get_magic_quotes_gpc() )
$str = stripslashes($str);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('letter', 'landscape');
$dompdf->render();
//Set Attachment attribute as True to show download file dialog box
$dompdf->stream("dompdf_out.pdf", array("Attachment" => false));
//For Attachment to sent in email
//$output = $dompdf->output();
exit(0);
font-style:italic;
font-size:12px;
line-height:14px !important;
}
div{
text-align:center;
}
</style>
</head>
<body>
<div><h1>Test Document</h1></div>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td class="italic_text"><h3>DirtyhandsPHP</h3></td>
</tr>
</table>
</body>
</html>';
if ( get_magic_quotes_gpc() )
$str = stripslashes($str);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('letter', 'landscape');
$dompdf->render();
//Set Attachment attribute as True to show download file dialog box
$dompdf->stream("dompdf_out.pdf", array("Attachment" => false));
//For Attachment to sent in email
//$output = $dompdf->output();
exit(0);
?>
Output : dompdf_out.pdf
file.
Reference Links
:
Thanks!!!!!!!!!!!!
Enjoy Programming :)
really helpfull, thanks a lot
ReplyDeletereally helpfull, thanks a lot
ReplyDeletethanks a lot
ReplyDeleteFont prep tool not working just for me? :(
ReplyDeleteFont prep tool not working :(
ReplyDelete