Avatar billede inctor Nybegynder
21. februar 2006 - 16:32 Der er 21 kommentarer og
1 løsning

PHP Til PDF

HeeJ Alle Sammen .. Sad og ledte efter en måde at genere en PDF fil på ligesom man kan genere Jpg, Gif, Png osv .. jeg fandt osse en metode:
<?

$pdf = pdf_new();

pdf_open_file($pdf, "test.pdf");

pdf_set_info($pdf, "Author", "Mads Duus");
pdf_set_info($pdf, "Title", "Lav En Simpel Pdf Fil");
pdf_set_info($pdf, "Creator", "Mads Duus");
pdf_set_info($pdf, "Subject", "Lav En PDF);
pdf_begin_page($pdf, 595, 842);
$arial = pdf_findfont($pdf, "Arial", "host", 1);
pdf_setfont($pdf, $arial, 14);

pdf_show_xy($pdf, "Min Informationer Står Her, Dette er kun en Test !",50, 400);
$gif_image = pdf_open_gif($pdf, "images/bg.gif");
pdf_place_image($pdf, $gif_image, 200, 300, 1.0);
pdf_close_image($pdf, $gif_image);
pdf_end_page($pdf);
pdf_close($pdf);
echo "<A HREF=\"test.pdf\" TARGET=\"_blank\">Open pdf in a new window Mads</A>"
?>

sådan har jeg set man skulle gøre det.. men jeg får denne fejl:

Fatal error: Call to undefined function: pdf_new() in D:\websider\vhosts\2cute4you.dk\httpdocs\peter\pdf_file.php on line 3

er der en nemmere måde at gøre det på ? og hvordan hvis der er ? og hvad er min fejl ?
Avatar billede inctor Nybegynder
21. februar 2006 - 16:42 #1
er her hjælp at hente ?
Avatar billede gizmo-gizmo Nybegynder
21. februar 2006 - 16:44 #2
Det er sikkert fordi webhotellet ikke har "enabled" det plugin der hedder gdlib, og så kan den ikke finde de funktioner du prøver at kalde.

Kig evt. på www.fpdf.org  det er helt gratis og jeg synes det er nemmere at arbejde med i forhold til gdlib, og det er bare en php fil der skal inkluderes i sit dokument, så er man kørende.
Avatar billede inctor Nybegynder
21. februar 2006 - 16:50 #3
jeg kan ikk installere gdlib eller noget .. skal dpdf installeres ligesom gdlib ?
Avatar billede gizmo-gizmo Nybegynder
21. februar 2006 - 16:53 #4
Det smarte ved fpdf er at du ikke skal installere noget som helst på serveren, du inkluderer en php fil og så kan lave pdf'er.
Avatar billede inctor Nybegynder
21. februar 2006 - 16:53 #5
hvordan ? kan du ikk lige fortælle mig hvorn jeg gør det ? forstår ikke hvad de skriver i guiden ..
Avatar billede inctor Nybegynder
21. februar 2006 - 16:57 #6
fandt ud af det .. :)
Avatar billede gizmo-gizmo Nybegynder
21. februar 2006 - 16:59 #7
Jamen super :-)
Avatar billede inctor Nybegynder
21. februar 2006 - 17:05 #8
Hmm .. Vil gerne have Database udtræk med i den , men nu vil den ikk lave en pdf fil ? nu er koden således :
<?php
require('fpdf.php');

@mysql_connect ("localhost" , "root" , "");
@mysql_select_db ("dagplejer");

$hej = mysql_query("SELECT * FROM foraldre");
$du = mysql_fetch_array($hej);

$pdf=new FPDF('P','mm','A4');
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'$du[navn]');
$pdf->Output();
?>


men den vil ikke ?
den tekst der kommer er:

%PDF-1.3 3 0 obj <> endobj 4 0 obj <> stream xœ3Rðâ2Ð35W(çr QÐw3T04Ó30PISp  êZ*˜[š€…¤(h¨¤”Fç%–åÅj*„dåQ‚ endstream endobj 1 0 obj <> endobj 5 0 obj <> endobj 2 0 obj << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F1 5 0 R >> /XObject << >> >> endobj 6 0 obj << /Producer (FPDF 1.53) /CreationDate (D:20060326180447) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R /OpenAction [3 0 R /FitH null] /PageLayout /OneColumn >> endobj xref 0 8 0000000000 65535 f 0000000225 00000 n 0000000413 00000 n 0000000009 00000 n 0000000087 00000 n 0000000312 00000 n 0000000517 00000 n 0000000593 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 696 %%EOF

og det fatter jeg ikke :S
Avatar billede inctor Nybegynder
21. februar 2006 - 17:47 #9
Gizmo ??? HJÆÆÆLP MIIIIG ! :)
Avatar billede whatever Nybegynder
21. februar 2006 - 22:09 #10
gizmo-gizmo > Det havde ikke løst problemet hvis webhoteludbyderen havde enablet gdlib. Gdlib kan lave billeder ikke PDF. Den kode inctor postede i sit spørgmål, kræver i stedet at extensionen pdflib er enablet.
Avatar billede gizmo-gizmo Nybegynder
21. februar 2006 - 22:12 #11
whatever: ohh ja, undskyld, selvfølgelig pdflib og ikke gdlib, forvekslede dem lige :-)
Avatar billede gizmo-gizmo Nybegynder
21. februar 2006 - 22:13 #12
pdflib er stadig møjirriterende.
Avatar billede whatever Nybegynder
21. februar 2006 - 23:10 #13
Jeg kan kun være enig. Jeg bruger også normalt FPDF, det er meget lettere at arbejde med.
Avatar billede inctor Nybegynder
22. februar 2006 - 16:39 #14
øøhm .. kunne i hjælpe mig til hvordan jeg ligger database udtræk ind ?
Avatar billede pidgeot Nybegynder
22. februar 2006 - 16:45 #15
Prøv at sætte denne linie ind først i din fil:

header('Content-Type: application/pdf');

Hvis det ikke er nok (Internet Explorer har ikke altid nok i MIME-type, så sørg for at checke der), skal du nok ud i URL rewriting, så det script bliver kaldt med et navn der får det til at ligne en PDF-fil (dvs. script.pdf i stedet for script.php).
Avatar billede inctor Nybegynder
22. februar 2006 - 16:55 #16
det hjælper stadig ikk med udtrækket , den skriver bare $du[navn] i pdf dokumentet ..
Avatar billede pidgeot Nybegynder
22. februar 2006 - 16:57 #17
$pdf->Cell(40,10,'$du[navn]');

ændrer du til

$pdf->Cell(40,10,$du[navn]);

Når noget er indkapslet i ' checker PHP ikke om der ligger variabelnavne i, den bruger bare teksten direkte.
Avatar billede inctor Nybegynder
22. februar 2006 - 17:00 #18
TaaK det Virker ..
Hmm .. kan man lave en Template fil og så inkludere den hvor den så skal lægge alle værdierne ind ?

det skal bruges til en faktura liste .. og eftersom PDF er den eneste der er godkendt til at må bruges som faktura liste .. den skal hente nogen oplysninger i db'en og så lægge dem ind hele vejen ned så mange som der nu end er ..
Avatar billede pidgeot Nybegynder
22. februar 2006 - 17:20 #19
Det kan du gøre præcist som med enhver anden side, forskellen er blot at du her selv skal holde styr på hvor langt nede på siden du er, og så lave et sideskift når det er nødvendigt.

Lidt pseudokode:
1. Lav ny side
2. Sæt $y til 10
3. Sæt en linie ind på ($x,$y);
4. Læg et passende tal til $y.
5. Hvis $y er større end en vis værdi (sidens højde minus det ekstra plads der skal være nederst i dit dokument til margen og sidefod) der er flere linier der skal skrives, så gå til punkt 1
6. Hvis der er flere linier der skal skrives, så gå til punkt 3
Avatar billede inctor Nybegynder
22. februar 2006 - 20:48 #20
øøh ???? Fatter jeg Nada af .. vil du ikk lige prøve at lave et eksempel til mig .. ?
Avatar billede pidgeot Nybegynder
22. februar 2006 - 21:14 #21
Noget i stil med det her burde virke:
<?php
header('Content-Type: application/pdf');
require('fpdf.php');

@mysql_connect ("localhost" , "root" , "");
@mysql_select_db ("dagplejer");

$hej = mysql_query("SELECT * FROM foraldre");
$du = mysql_fetch_array($hej);

function MakeNewPage(&pdf)
{
  global $y;
  $y=10;
  $pdf->AddPage();
}

$pdf=new FPDF('P','mm','A4');
$maxheight=270;
$pdf->SetFont('Arial','B',16);
MakeNewPage($pdf);
while($du=mysql_fetch_assoc($hej))
{
if ($y>$maxheight)
  MakeNewPage($pdf);
$pdf->Cell(40,$y,$du[navn]);
$y+=16;
}
$pdf->Output();
?>
Men da jeg ikke har arbejdet med FPDF må du selv sørge for at rette det til så det virker.
Avatar billede inctor Nybegynder
26. februar 2006 - 21:20 #22
er her en som har forstand på FPDF ? skal bruge en til at omskrive et PHP dokument til FPDF dokument .. Fatter nemlig ikk selv hvorn og jeg har prøvet MANGE GANGE !
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