Avatar billede krydset Nybegynder
29. maj 2004 - 08:47 Der er 7 kommentarer og
1 løsning

fejl i font med pdf

Hejsa har prøvet at lave noget pdf i php, men når jeg kørerscriptet får jeg flg. fejl.


Fatal error: PDFlib error: [2516] PDF_findfont: Metrics data for font 'C:\WINNT\fonts\Times New Roman' not found in c:\www\pc-dk.dk\pdf.php on line 12

Nogen der ved hvorfor den giver den fejl ??

//Krydset
Avatar billede krydset Nybegynder
29. maj 2004 - 08:50 #1
her er lidt kode

<?php
$p = pdf_new();
pdf_open_file($p, "test.pdf");
pdf_set_info($p, "Author", "Thomas");
pdf_set_info($p, "Title", "Tester");
pdf_set_info($p, "Creator", "Pc-dk.dk");
pdf_set_info($p, "Subject", "TEST");


pdf_begin_page($p, 450, 450);

$font = pdf_findfont($p, "C:\WINNT\fonts\Times New Roman", "host", 0);
pdf_set_font($p, $font, 12);


pdf_show_xy($p, "HELLO DYNAMIC PDF", 5, 225);
pdf_end_page($p);
pdf_close($p);


$buffer = pdf_get_buffer($p);

header("content-type: application/pdf");
header("content-length: ".strlen($buffer));
header("content-disposition: inline; filename=test.pdf");


echo $buffer;

pdf_delete($p);
?>
Avatar billede Slettet bruger
30. maj 2004 - 08:59 #2
Fra brugerkommentarerne i manualen:

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.

Hvis du ikke benytter en af de indbyggede skrifttyper, skal du have en "font metrics" fil for den skrifttype, du vil bruge, men du kan lige så godt bruge den indbyggede Times-Roman i stedet for Times New Roman, og tilsvarende for Courier/Courier New, og Helvetica er meget lig Arial. (Næsten magen til, så vidt jeg husker.)
Avatar billede krydset Nybegynder
30. maj 2004 - 09:35 #3
hvordan bruger jeg de indbyggede ??
Avatar billede Slettet bruger
30. maj 2004 - 10:01 #4
Ifølge php-eksemplet i manualen til PDFlib, skal du bare gøre lige som du gør, men i stedet for at give en sti til en font, skriver du bare fontnavnet på den af de indbyggede, du vil have.

Bemærk, at du tilsyneladende skal bruge forskellige skrifttyper for fed (Bold) og kursiv (Oblique eller Italic).
Avatar billede krydset Nybegynder
30. maj 2004 - 10:03 #5
<?php
$p = pdf_new();
pdf_open_file($p, "test.pdf");
pdf_set_info($p, "Author", "Thomas");
pdf_set_info($p, "Title", "Tester");
pdf_set_info($p, "Creator", "Pc-dk.dk");
pdf_set_info($p, "Subject", "TEST");


pdf_begin_page($p, 450, 450);

$font = pdf_findfont($p, "Times-BoldItalic", "winansi", 0);
pdf_set_font($p, $font, 13);



pdf_show_xy($p, "HELLO DYNAMIC PDF", 5, 225);
pdf_end_page($p);
pdf_close($p);


$buffer = pdf_get_buffer($p);

header("content-type: application/pdf");
header("content-length: ".strlen($buffer));
header("content-disposition: inline; filename=test.pdf");


echo $buffer;

pdf_delete($p);
?>

det giver fejl meddelsen:


Warning: Wrong parameter count for pdf_set_font() in c:\www\pc-dk.dk\pdf.php on line 13

Fatal error: PDFlib error: [2238] PDF_show_xy2: No font set for text in c:\www\pc-dk.dk\pdf.php on line 17
Avatar billede Slettet bruger
30. maj 2004 - 19:01 #6
Måske vil det virke at sætte encoding til pdfdoc, builtin eller auto i stedet for winansi.
Avatar billede krydset Nybegynder
30. maj 2004 - 22:36 #7
Nej stadig samme fejl :-(
Avatar billede krydset Nybegynder
07. juni 2004 - 18:40 #8
hmmm lukker her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester