Solved

PHP and PDF: problem with font metrics data

Posted on 2004-04-13
6
3,549 Views
Last Modified: 2013-12-13
Hi there, PHP gurus! Urgent help needed here (before I throw this wicked machine off the window:))

My application is supposed to generate a .pdf file containting some product identification data and the corresponding barcode for the product.

I have installed the Free3of9Extended font on my machine (I'm running PHP 4.3.4 with Apache on Win98) and it works just fine with HTML or MS Word (i.e. I can see and print the barcodes), but when I try using it in a PHP-generated .pdf file, I get this error:

"Fatal error: PDFlib error: Metrics data for font 'Free3of9Extended' not found in c:\localsite\test.php on line 13"

My elementary testing code looks like this:

<?php
$pdf = pdf_new();
pdf_set_parameter($pdf, "resourcefile", "c:\php\pdf-related\pdflib.upr");
pdf_open_file($pdf, "dummy.pdf");
pdf_begin_page($pdf, 595, 842);
$myfont = pdf_findfont($pdf, "Free3of9Extended", "host", 1);
pdf_setfont($pdf, $myfont, 10);
pdf_show_xy($pdf, "2453453452345", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);
?>

I have specified the afm and pfm filename for my font in the pdflib.upr file:
FontAFM
Free3of9Extended=New_____.afm
...
FontPFM
Free3of9Extended=New_____.pfm

(new_____.* are the corresponding filenames for the afm and pfm barcode font files)

I still can't get rid of the "Metrics data for font 'Free3of9Extended' not found" error message. Note that other fonts (such as Arial) work just fine.

What else do I have to do? What am I overlooking here?

Thanks guys/gals!
0
Comment
Question by:muntel
  • 2
  • 2
6 Comments
 
LVL 9

Expert Comment

by:techtonik
ID: 10816908
No idea. Could you try latest PDFlib from http://www.pdflib.com/products/pdflib4/download/PHP-4.3.0/pdflib-4.0.3-Windows-php430.zip or version 5 http://www.pdflib.com/products/pdflib/index.html

I've got some crashes with PDFlib, which comes with PHP 4.3.4
0
 

Author Comment

by:muntel
ID: 10820614
Thank you for answering, techtonik. I gave it a try with the new version of PDFlib, but I still get the same error.

I don't think my problem has anything to do with PDFlib, it may have something to do with the font I'm using (barcode 3 of 9). Does anybody have some experience with using fonts in PDF files? Anyone, please?
0
 

Author Comment

by:muntel
ID: 10822142
It's OK, I've solved the problem. I switched from Type 1 to True Type for my barcode fonts and everything works fine.

I modified the pdflib.upr file accordingly:

FontOutline
Free 3 of 9 = Free3of9.ttf

Now things work just the way they should.

I'd like a refund on my points, if that's possible, please. Thanks!
0
 
LVL 9

Expert Comment

by:techtonik
ID: 10826624
Agreed. =)
You should make a request as it stated here.
http://www.experts-exchange.com/Web/Web_Languages/PHP/PHP_Windows/help.jsp#hi70
0
 
LVL 5

Accepted Solution

by:
Netminder earned 0 total points
ID: 10830520
User resolved; closed, 125 points refunded.

Netminder
Site Admin
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now