Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  26 1406
Hei !

Målet mitt er å lage pdf med php.
Jeg har søkt i en time nå og fant ut at jeg må ha installert PDFLib. Jeg fant frem PDFLib, men jeg har ingen anelse om hvordan man skal installere det. Jeg har søkt mye på nettet, men finner ingenting om installeringen.

Jeg vet at jeg ikke har det fordi, funksjoner som pdf_open_file, pdf_begin_page blir ikke gjenkjent i WAMP.

Håper virkelig noen kan hjelpe meg!
Takk skal dere ha.
http://www.google.no/search?hl=no&q=...meta=&aq=f&oq=


I just successfully installed PDFlib on windows XP running WAMP. Here is the process:

Installing PDFlib on Apache/PHP running on Windows:

Download PDFLib from:
http://www.pdflib.com/download/pdflib-family/pdflib-7/

Here is the direct download for the currently latest version for windows:
http://www.pdflib.com/binaries/PDFli...SWin32-php.zip

Once you have finished downloading, extract the zip file.
In the folder "bind" choose your php version, and open that folder. (php4 or php5)

Inside that folder, you'll have PHP sub versions, choose your sub version. If you don't know the exact PHP version you'ure using, run a php page with <?php phpinfo(); ?> in it. The PHP version will be printed right at the top of the page.

Inside the sub version folder, you'll find the pdflib's .dll file for your php version.

Copy the .dll file and save the copy in your php extensions folder. This folder is defined in php.ini as "extension_dir". So if you don't know what it is on your machine, open php.ini and search for 'extension_dir'.
On my system is was: c://wamp/php/ext/

Now open php.ini and add the extension. The format for this is:

Help with Code Tags
(Toggle Plain Text)
extension=file.dll

where file is the file name of the extension.

eg:
Help with Code Tags
(Toggle Plain Text)
extension=libpdf_php.dll

Now you have to restart apache, and you should have pdflib installed. I tested this using:

Help with Code Tags
php Syntax (Toggle Plain Text)
<?php
if (class_exists('PDFlib')) {
echo 'PDF Lib supported';
} else {
echo 'PDF Lib not supported';
}
?>

I don't know about XAMP, you you might have the pdflib extension already added to your extensions directory. If so, then all you have to do is add the line extension=libpdf_php.dll to php.ini
Vis hele sitatet...
Sist endret av jeppfi; 8. juni 2009 kl. 16:47.
Tusen takk.
Men: hvor i php.ini skal jeg legge extension=file.dll til ?
- La det til på slutten, men fungerte ikke :S
m0b
m0b's Avatar
DonorAdministrator
Har du restartet webserver-tjenesten? Har du kjørt opp phpinfo() for å sjekke om modulen faktisk er lastet inn?
Sist endret av m0b; 8. juni 2009 kl. 17:15.
Sitat av |d13m0b Vis innlegg
Har du restartet webserver-tjenesten? Har du kjørt opp phpinfo() for å sjekke om modulen faktisk er lastet inn?
Vis hele sitatet...
Skal det ligge unde configuration ?
m0b
m0b's Avatar
DonorAdministrator
Det var ikke det jeg spurte om.
Sitat av |d13m0b Vis innlegg
Det var ikke det jeg spurte om.
Vis hele sitatet...
Jeg restartet wamp. echoet phpinfo(), og fant trykket CTRL+F i firefox, søkte PDFLit, fikk ikke treff
m0b
m0b's Avatar
DonorAdministrator
Sjekk loggen til webserveren din, og se om du har noen feilmeldinger der som sier at den ikke finner modulen. Ble modulen (dll-fila) lagt ilag med resten av modulene som er preinstallert med server-pakken (WAMP)?

Det er forøvrig dll-filens navn du skal se etter i phpinfo(), og ikke navnet på systemet. Dvs. søk etter libpdf.
Sist endret av m0b; 8. juni 2009 kl. 17:27.
Jepp, lastet det inn på riktig sted: [COLOR="Red"]D: \wamp\bin\php\php5.2.9\ext[/COLOR]

Videre sjekket jeg errorloggen, og fant følgende:

[08-Jun-2009 17:23:14] PHP Warning: PHP Startup: Unable to load dynamic library 'D:/wamp/bin/php/php5.2.9/ext/libpdf_php.dll' - The specified procedure could not be found.

in Unknown on line 0


[08-Jun-2009 17:23:18] PHP Warning: PHP Startup: Unable to load dynamic library 'D:/wamp/bin/php/php5.2.9/ext/libpdf_php.dll' - The specified procedure could not be found.

in Unknown on line 0
Vis hele sitatet...
Sist endret av Donquijote; 8. juni 2009 kl. 17:25.
m0b
m0b's Avatar
DonorAdministrator
Jeg vil tro at du har et dependency-problem her. Den prøver å utføre en funksjon som ikke php kan gjenkjenne. Du bør sjekke at det er kompatibilitet med 5.2.9 og pdflib-versjonen.

Men, jeg ville kanskje tenkt på å ikke benytte meg av pdflib da den krever at du installerer moduler og tull. Et alternativ kan være fpdf. Dette er en klasse som du kan bruke (kun include for å kunne benytte funksjonaliteten), istedet for å laste inn modul.

Eneste du trolig trenger for å bruke denne er gd, zlib og andre moduler som ofte er ferdig installert i pakken.

http://www.fpdf.org/
Sist endret av m0b; 8. juni 2009 kl. 17:35.
Sitat av |d13m0b Vis innlegg
Jeg vil tro at du har et dependency-problem her. Den prøver å utføre en funksjon som ikke php kan gjenkjenne. Du bør sjekke at det er kompatibilitet med 5.2.9 og pdflib-versjonen.

Men, jeg ville kanskje tenkt på å ikke benytte meg av pdflib da den krever at du installerer moduler og tull. Et alternativ kan være fpdf. Dette er en klasse som du kan bruke, istedet for å laste inn modul.

Eneste du trolig trenger for å bruke denne er gd, zlib og andre moduler som ofte er ferdig installert i pakken.
Vis hele sitatet...
Tusen takk |d13m0b,

Det er helt riktig at jeg bør sjekke at det er kompatibilitet med 5.2.9. Jeg gjorde dette og lastet inn 530 versjonen. Straks fikk jeg følgende resultat:

http://img189.imageshack.us/img189/2664/0806tlv.png
m0b
m0b's Avatar
DonorAdministrator
Ok, flott at hunches kan hjelpe til med å løse problemene. Nå har du hvertfall fått den modulen inn. Jeg ville dog tatt en titt på begge mulighetene og se hvilken av de som passer behovene dine.

Jeg tror klassen vil være enklere å bruke for deg, uten at jeg kjenner verken av systemene godt. Selv genererer jeg pdfer under C# som en webservice.
Sist endret av m0b; 8. juni 2009 kl. 17:40.
Får et annet problem.

¨Jeg prøver meg på denne tutorialen:

Kode

<?php
// create handle for new PDF document
$pdf = pdf_new();

// open a file
pdf_open_file($pdf, "philosophy.pdf");

// start a new page (A4)
pdf_begin_page($pdf, 595, 842);

// get and use a font object
$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10);

// print text
pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,", 50, 750); pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50, 730);

// end page
pdf_end_page($pdf);

// close and save file
pdf_close($pdf);


?>
Men denne printer ingenting.
Når jeg echo $pdf, får jeg resource id#5.

Jeg forstår ikke helt hvorfor dette skjer.
Tusen takk
Sitat av |d13m0b Vis innlegg
Ok, flott at hunches kan hjelpe til med å løse problemene. Nå har du hvertfall fått den modulen inn. Jeg ville dog tatt en titt på begge mulighetene og se hvilken av de som passer behovene dine.

Jeg tror klassen vil være enklere å bruke for deg, uten at jeg kjenner verken av systemene godt. Selv genererer jeg pdfer under C# som en webservice.
Vis hele sitatet...
Tusen takk.
Jeg skal bare ha altså noe som er enkelt. Dette er tross alt kunn trening, og jeg prøver å bringe data fra en database og få dem ut i form av pdf.
m0b
m0b's Avatar
DonorAdministrator
Hvorfor ønsker du å printe ut $pdf? Tror du muligens misforstår litt, hvis du har tenkt å spytte ut pdfen direkte i nettleseren.

Grunnen til at du får ut en resource id, er fordi det er nøyaktig det den er. Det er ikke data direkte, men en henvisning til hvor dataen måtte befinne seg i minnet. Variabelen er trolig det man vil kalle for et "handle". En filpeker. En variabel med en id som forteller resten av funksjonene som bruker handle, hvor ting ligger.

Hvis du skal printe ut pdfen direkte, må du nok åpne opp filen (eller lese minneområdet direkte), hente ut data som ligger i filen, sende ut mime-headers til klienten og deretter spytte ut binærdata.
Sist endret av m0b; 8. juni 2009 kl. 17:45.
Save this file, and then browse to it through your Web browser. PHP will execute the script, and a new PDF file will be created and stored in the location specified at the top of the script. Here's what you'll see when you open the file:
Vis hele sitatet...
Vel, ovennevnte får det til å høres ut som barnemat. Men det er kanskje litt verre... ?
Sist endret av Donquijote; 8. juni 2009 kl. 17:52.
m0b
m0b's Avatar
DonorAdministrator
Ja, men jeg ser ikke henvisning til noen "echo" i sourcen som du pastet. Fra det jeg kan se på sourcen, så skal ikke det scriptet gi noen output i det hele tatt, men kun opprette en pdf-fil som ligger der klar til å åpnes?
Sitat av |d13m0b Vis innlegg
Ja, men jeg ser ikke henvisning til noen "echo" i sourcen som du pastet. Fra det jeg kan se på sourcen, så skal ikke det scriptet gi noen output i det hele tatt, men kun opprette en pdf-fil som ligger der klar til å åpnes?
Vis hele sitatet...
Helt riktig. Men når du sier den "ligger der", altså ligger hvor ?
Edit: Det blir ikke outputet noen link til filen.
Sist endret av Donquijote; 8. juni 2009 kl. 17:56.
m0b
m0b's Avatar
DonorAdministrator

Kode

// open a file
pdf_open_file($pdf, "philosophy.pdf");
...
// close and save file
pdf_close($pdf);
Uten at jeg kjenner biblioteket så vil jeg tro at filen skal ligge i akkurat samme directory som scriptet. (Dette fordi du kun spesifiserer navn og ikke absolutt adresse/path) Med mindre pdflib har noen snedige konfigureringsmuligheter som spesifiserer en standard plass å lagre filen.

Scriptet (dvs. brukeren (som kjører webserveren) som kjører scriptet) må også ha skriverettigheter til directoriet som filen skal lagres i.
Sist endret av m0b; 8. juni 2009 kl. 17:57.
Sitat av |d13m0b Vis innlegg

Kode

// open a file
pdf_open_file($pdf, "philosophy.pdf");
...
// close and save file
pdf_close($pdf);
Uten at jeg kjenner biblioteket så vil jeg tro at filen skal ligge i akkurat samme directory som scriptet. (Dette fordi du kun spesifiserer navn og ikke absolutt adresse/path) Med mindre pdflib har noen snedige konfigureringsmuligheter som spesifiserer en standard plass å lagre filen.

Scriptet (dvs. brukeren (som kjører webserveren) som kjører scriptet) må også ha skriverettigheter til directoriet som filen skal lagres i.
Vis hele sitatet...
Så i philosophy.pdf må det være en komplett path til hvor filen skal lagres, og jeg må gi det pathet skriverettigheter.
Men er ikke skriverettigheter definert kun i serveren ? Altså, dette er jo ikke noe server jeg jobber på nå. Dette er datamaskinen og WAMP server.
Sist endret av Donquijote; 8. juni 2009 kl. 18:04.
m0b
m0b's Avatar
DonorAdministrator
Det er rett at det må være skriverettigheter, men det ikke være en komplett path. Skriver du bare inn filnavnet, vil den lagres i samme kontekst der scriptet kjøres. Altså samme directory.
Atter engang har du 100 % rett |d13m0b. Elsker deg.
Tusen hjertlig takk for hjelpen.

Det er rett at det må være skriverettigheter, men det må ikke være en komplett path. Skriver du bare inn filnavnet, vil den lagres i samme kontekst der scriptet kjøres. Altså samme directory.
Vis hele sitatet...
Jess, så er det så lett som å lagre en path til filen som output.
Sist endret av Donquijote; 8. juni 2009 kl. 18:07.
▼ ... over en uke senere ... ▼
Ikke meningen å kuppe tråden eller noe sånt, men det er relevant.

Er det noen som har funnet et script som konverterer fra html til pdf? Helst PHP. Jeg har funnet noen løsninger, men de fungerer så dårlig. Fant en som fungerte utmerket, men den koster 100$ for 100PDF. Det blir litt dyrt... Forøvring denne: http://html2pdf.seven49.net/Web/en/O...mo/Default.htm som fungerte.
Sitat av fredrikweb Vis innlegg
Ikke meningen å kuppe tråden eller noe sånt, men det er relevant.

Er det noen som har funnet et script som konverterer fra html til pdf? Helst PHP. Jeg har funnet noen løsninger, men de fungerer så dårlig. Fant en som fungerte utmerket, men den koster 100$ for 100PDF. Det blir litt dyrt... Forøvring denne: http://html2pdf.seven49.net/Web/en/O...mo/Default.htm som fungerte.
Vis hele sitatet...
Det var vel nettopp hva de diskuterte.
Å konvertere html til pdf ved hjelp av php. FPDF er løsningen.
FPDF genererer PDF fra PHP. Jeg ønsker å kopiere en eksisterende HTML-side.
Sikkerhetsklarert
Kan du utdype scenarioet ditt fredrikweb?

Det første som treffer meg, om dette kun er ett engangstilfelle, -skriv ut nettsiden fra nettleseren mot en pdf printer (cutepdf) o.l

Evt bruk lag et php script der du inkluderer html filen, for igjen spytte den ut som pdf via fpdf