Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 5644
  • Last Modified:

mpdf - using specific fonts

Hi

I am generating a pdf from my php web application...

I need to use a specific font in the pdf, and have some css for the font like this:

p.top	{ font-family: 'HelveticaNeueLT-BlackCond';     }

Open in new window


I have uploaded some fonts into the 'ttffonts' folder and I guess there must be more I need to do before I can use them in my pdfs... I have 3 fonts I need to use:

HelveticaNeueLT-BlackCond.ttf
HELVETICANEUELT-BOLDCOND.OTF
HELVETICANEUELT-CONDENSED.OTF
0
cycledude
Asked:
cycledude
2 Solutions
 
Dan CraciunIT ConsultantCommented:
After you uploaded the fonts to /ttfonts (not /ttffonts), did you also add entries for you fonts in config_fonts.php (in this->fontdata)?

Something like:
"Helvetica Condensed" => array(
        'R' => "HELVETICANEUELT-CONDENSED.OTF",
        ),
"Helvetica Bold Condensed" => array(
        'R' => "HELVETICANEUELT-BOLDCOND.OTF",
        ),
"Helvetica Black Condensed" => array(
        'R' => "HelveticaNeueLT-BlackCond.ttf",
        ),

You would then use
p.top      { font-family: 'Helvetica Black Condensed';}

HTH,
Dan
0
 
cycledudeAuthor Commented:
Hi

Thanks for the info..

I hadn't put the entry into the config_fonts.php  

I have now, and the fonts are in the correct folder (ttfonts)

but the font doesn't appear to be being selected as you would expect still


do I need corresponding files in the 'ttfontdata' folder too?
0
 
Dan CraciunIT ConsultantCommented:
Not according to the manual: http://mpdf1.com/manual/index.php?tid=453
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
cycledudeAuthor Commented:
i just tried changing the font selected to another in the 'fonts' array and it worked fine... it just doesn't want to play with my uploaded fonts at all..
0
 
Dan CraciunIT ConsultantCommented:
Have you tried them all?
I would expect troubles with the OpenType fonts, but not with the True Type one.
0
 
cycledudeAuthor Commented:
i have tried all 3 fonts I need to work, and a few others that I have uploaded but non seem to work....
0
 
Dan CraciunIT ConsultantCommented:
The fonts that do work, you can see them in the /ttfonts folder?
0
 
cycledudeAuthor Commented:
Hi

I tried the following test.. the only font from the ttfonts folder that seems to work is the monotype dejavumono (but even that may be a substitute font...)




http://your-website.co.uk/mpdf/


page code

<?php


$html = "
<html>
<head>
	<style>
		* { margin: 0 ; padding: 0; }
		.body { padding: 5%; float: left; margin: -140% 0 0 0; }
		p 	{ font-size: 30pt; margin: 0 0 0 7%; width: 60%; }
		
		.logo1	{ width: 15%; float: left; }
		.font1 { font-family: arial; }
		.font2 { font-family: tahoma; }
		.font3 { font-family: calibri; }
		.font4 { font-family: scriptina; }
		.font5 { font-family: dejavusansmono; }
		.font6 { font-family: HelveticaCondensed; }
		.font7 { font-family: helveticaboldcondensed; }
		.font8 { font-family: helveticablackcondensed; }
		
	</style>
</head>
<body>

<div class='body'>
<p class='top font1' >Arial: abcdefghijklmnopqrstuvwxyz</p>
<p class='font2'>tahoma: abcdefghijklmnopqrstuvwxyz</p>
<p class='font3'>calibri: abcdefghijklmnopqrstuvwxyz</p>
<p class='font4'>scriptina: abcdefghijklmnopqrstuvwxyz</p>
<p class='font5'>dejavusansmono; abcdefghijklmnopqrstuvwxyz</p>
<p class='font6'>Helvetica Condensed; abcdefghijklmnopqrstuvwxyz</p>
<p class='font7'>helveticaboldcondensed; abcdefghijklmnopqrstuvwxyz</p>
<p class='font8'>helveticablackcondensed; abcdefghijklmnopqrstuvwxyz</p>

    

</body>
</html>
"; 
 
  
include("mpdf/mpdf.php");


$mpdf=new mPDF('en-x',$size,'','',0,0,0,0,0,0);


$mpdf->WriteHTML($html);
$mpdf->Output();
exit;
//==============================================================
//==============================================================
//==============================================================
?>

Open in new window


and config_fonts.php

	"dejavusansmono" => array(
		'R' => "DejaVuSansMono.ttf",
		'B' => "DejaVuSansMono-Bold.ttf",
		'I' => "DejaVuSansMono-Oblique.ttf",
		'BI' => "DejaVuSansMono-BoldOblique.ttf",
		),

	
	"HelveticaCondensed" => array(
		'R' => "HELVETICANEUELT-CONDENSED.OTF",
		
		),

	
		
	"helveticaboldcondensed" => array(
        'R' => "HELVETICANEUELT-BOLDCOND.OTF"
		 
        ),
		
	"helveticablackcondensed" => array(
        'R' => "HelveticaNeueLT-BlackCond.ttf"
		
        ),

	"Scriptina" => array(
        'R' => "SCRIPTIN.ttf"
		
        ),

Open in new window

0
 
Dan CraciunIT ConsultantCommented:
I downloaded the test file and you have only Courier, Helvetica and Times-Roman inside.

So, mPDF is not reading any font from that folder, meaning it can't see the folder.

Does it generate some kind of log so we can see the errors?

This looks promising: http://mpdf1.com/manual/index.php?tid=466
0
 
cycledudeAuthor Commented:
Hey thanks

I changed the value

$this->debugfonts = true;


but doesn't seem to show any errors... will they appear in a log or on the screen?
0
 
Dan CraciunIT ConsultantCommented:
I'm installing the package now in a test server. Will get back to you once I finish testing.
0
 
cycledudeAuthor Commented:
Hey Dan

I think I got it working... not entirely sure how though...


http://your-website.co.uk/mpdf/

I took out the 'en-x' from the first parameter in the constructor of the mpdf class

$size = 'A4';

$mpdf=new mPDF('',$size,'','',0,0,0,0,0,0);


and it fired up..
1
 
Dan CraciunIT ConsultantCommented:
It's a font problem. Used a ttf variant of the Helvetica Condensed (LTe50052.ttf) and it worked, no issues.

I see you posted before this :) In my test page I don't have the "en-x" parameter.
0
 
Dan CraciunIT ConsultantCommented:
I think that behavior was intended. Look in config_cp.php. Particularly these lines:

           // Edit this value to define how mPDF behaves when using new mPDF('-x')
            // If set to TRUE, mPDF will use Adobe core fonts only when it recognises the languages above
            $coreSuitable = true;  break;

This means that your use of "en-x" forced mpdf to ignore any fonts you added.
1
 
cycledudeAuthor Commented:
thanks for the help dan, you da man ;o)
0
 
sumi_devCommented:
hey cycledude,

Your comment solve my issue!  :)
0
 
Shenkie KoelkastCommented:
cycledude! I don't know if you are still alive, but you are a hero!!

I had 'c' as first parameter, removing it made the custom font work, hurray!

Thanks alot!
1
 
Faye ArmisteadCommented:
Shenkie Koelkast - Mwah! That fixed mine! mwah
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now