|
 |
pdf_findfont (PHP 4 >= 4.0.5, PECL) pdf_findfont -- Prepare font for later use with pdf_setfont()Descriptionint pdf_findfont ( resource pdfdoc, string fontname, string encoding, int embed )
Prepare a font for later use with pdf_setfont().
The metrics will be loaded, and if embed is
nonzero, the font file will be checked, but not yet used.
encoding is one of builtin,
macroman, winansi,
host, a user-defined encoding name or the name of
a CMap.
Parameter embed is optional before PHP 4.3.5 or
with PDFlib less than 5.
pdf_findfont() returns a font handle or FALSE
on error.
Пример 1. pdf_findfont() example
<?php
$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
if ($font) {
pdf_setfont($pdf, $font, 10);
}
?>
|
|
pdf_findfont
R. Christiaanse
26-Jul-2005 04:57
If you get the following error,
"PDFlib error: [2518] PDF_findfont: No file specified with outline data for font ..."
you might try the following:
1. Take care the environment variable PDFLIBRESOURCE is correctly set.
You can set it like this: putenv("PDFLIBRESOURCE=C:\phpdev\php\pdf-related\pdflib.upr");
2. Take care the resource variabele used by PDFLib is correctly set.
You can set it like this: pdf_set_parameter($pdf, "resourcefile", "C:\phpdev\php\pdf-related\pdflib.upr");
3. Take care the resource file and fonts can be found by adjusting your local include path.
You can set it like this: ini_set('include_path', 'C:/phpdev/php/pdf-related');
4. Take care the paths in the PDFLIB resource file are correct
Open pdflib.upr in a text editor and modify the path entry (read the comments):
Example: /C:/phpdev/php/pdf-related
5. Leave the optional parameter 'embed' out:
Like this:
if ($font = pdf_findfont($pdf, "Helvetica", "host", 0))
pdf_setfont($pdf, $font, 12);
Or this:
if ($font = pdf_findfont($pdf, "Helvetica", "host"))
pdf_setfont($pdf, $font, 12);
I hope this could be of help to you...
sebastien at galliot dot com
25-Jun-2004 01:14
Display UTF-8 string with your PDFlib and true type font
<?php
$pdf = pdf_new();
if (!pdf_open_file($pdf, ""))
exit;
PDF_begin_page($pdf, 600,800);
pdf_set_parameter($pdf, "textformat", "utf8");
$fontdir = "/path/to/font/directory/";
pdf_set_parameter($pdf, "FontOutline", "ArialUnicode=$fontdir/ARIALUNI.TTF");
pdf_set_parameter($pdf, "FontOutline", "ArialItalic=$fontdir/ariali.ttf");
$utf_8_string ="Потребление" ;
$font = PDF_findfont($pdf, "ArialUnicode", "unicode",0);
pdf_setfont($pdf, $font, 15);
pdf_show_xy($pdf, "Arial Unicode : $utf_8_string" ,40 ,700);
$font = PDF_findfont($pdf, "ArialItalic", "unicode",0);
pdf_setfont($pdf, $font, 15);
pdf_show_xy($pdf, "Arial Italic : $utf_8_string" ,40 ,650);
PDF_end_page($pdf);
pdf_close($pdf);
$buf = pdf_get_buffer($pdf);
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
echo $buf;
pdf_delete($pdf);
?>
Mairsil
27-Jan-2004 10:31
An easy way to use .ttf fonts under *nix:
pdf_set_parameter($pdf, "FontOutline", "Arial=/var/path/to/font/arial.ttf");
Leander Hanwald
13-Aug-2003 04:46
Hi
--- English ----
Be carefull if you want to use german umlauts.
I tried it with libpdf 5.x and used the builtin paramater.
After i created a pdf I saw that all umlauts are a space ('' -> ' ')
I tried it with winansi and it works.
---- German ---
Vorsicht bei der Benutzung von Deutschen Umlauten.
Ich habe hier libpdf 5.x im Einsatz und habe es mit dem Parameter "buildin" versucht. Leider waren danach alle Umlaute nur Leerstellen ('' -> ' ').
Als ich es mit "winansi" versucht habe hat es funktioniert.
jurgen dot php dot net at nospam dot thewicked dot nl
10-Jul-2003 07:38
try this nice *nix shell code to generate the FontAFM section of your UPR files:
for i in *.afm
do
sep=`echo -e "\r"`
file=`cat $i | grep FontName | cut -b 10-`
file=${file//$sep/}
echo "$file=$i"
done
it gererates something like this:
Courier-Oblique=Courier-Oblique.afm
Courier=Courier.afm
Helvetica-Bold=Helvetica-Bold.afm
etc.
probably usefull if you add fonts now and then...
dont be shy to mail me if you find this usefull!
chkim at secuve dot com
26-Oct-2002 10:47
you can use korean font.
$font_kr = PDF_findfont($pdf, "HYSMyeongJoStd-Medium-Acro", "KSC-EUC-H", 0);
mitch at nospam dot unixprogramming dot net
20-Mar-2002 04:48
A note on fonts...
Everyone should take a look at the PDFlib manual, section 3.3.5 on TrueType fonts and such. In order to not have to embed fonts and have the font metrics file available use one of the 14 internal PDFlib fonts (case sensitive) :
Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique,
Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique,
Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic,
Symbol, ZapfDingbats
Note that "Times New Roman" isn't in there (Times-Roman is, however). All is explained in the PDFlib manual so if you're having trouble with the above example, please check it out.
bob at nijman dot de
02-Aug-2001 06:45
Try this:
<?php
$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author","Bob Nijman");
pdf_begin_page($pdf, 300, 300);
$font = pdf_findfont($pdf, "Times New Roman", "host", 1);
if ($font) {
pdf_setfont($pdf, $font, 30);
}
$string = "Hello Berlin-Mitte!";
$width = pdf_stringwidth($pdf, $string);
pdf_set_text_pos($pdf, (300-$width)/2, 200);
pdf_show($pdf, $string);
pdf_end_page($pdf);
pdf_close($pdf);
$data = pdf_get_buffer($pdf);
header('Content-type: application/pdf');
header('Content-disposition: inline; filename=myTest.pdf');
header('Content-length: ' . strlen($data));
echo $data;
?>
martin at better-com dot de
23-Jun-2001 10:36
For using pdf_findfont with pdf_setfont it's a good idea to copy your fonts to a separate directory, i.e. /usr/local/fonts. You should also copy the upr file which comes with PDFlib to this directory. The example code above did not work here until I put a
pdf_set_parameter($pdf, "resourcefile", "/usr/local/fonts/pdflib.upr");
before the line with pdf_findfont().
| |