[php] pdf combine

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
weet iemand of het mogelijk is om met php pdfjes te combineren, Imagemagick kent wel "adjoin" en "combine" maar schijnen niet te werken met pdfjes. Iemand enig idee of dit kan en hoe?

alvast bedankt (is nihil over te vinden, google/tweaksearch)

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
nee.

Tot zover ik weet is er nog niemand geweest die een script heeft gemaakt die PDF bestanden in leest en die dan kunt editten. Dus ook niet meerdere inlezen en aan elkaar plakken. Het is welmogelijk, maar het is nogal een hopeloos geval om het allemaal te moeten programmeren in PHP.

Je zult het in de hoek van reeds bestaande PDF pakketten en/of tooltjes (iig niet PHP) moeten zoeken.

[ Voor 1% gewijzigd door Sybr_E-N op 04-01-2006 13:51 . Reden: Zie hieronder. ]


Acties:
  • 0 Henk 'm!

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024

Copy.com


Acties:
  • 0 Henk 'm!

Verwijderd

Je kunt fpdi gebruiken. Dat is een uitbreiding op fpdf.

fpdi: http://fpdi.setasign.de/
fpdf: http://www.fpdf.org/

Acties:
  • 0 Henk 'm!

Verwijderd

Als je dingen kan installeren op de server kan je pdftk gebruiken. Op debian kan je simpelweg "apt-get install pdftk" uitvoeren. Ik heb hier ook een wrapper classje voor geschreven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//voorbeeldje:
$pdfm = new PdfMerger(array('pagina1.pdf','pagina2.pdf','pagina3.pdf'));

try {
    $pdfm->createMergedFile('merged.pdf');
}
catch($e) {
    echo "Kon niet mergen: ",$e->getMessage();
}

class PdfMerger {
    var $files;
    var $pdftk = "/usr/bin/pdftk";

    function __construct($files) {
        $this->files = $files;
    }
    
    function createMergedFile($destination) {
        $this->execute($this->getCommand($destination));
    }
    
    function getCommand($destination) {
        $cmd = $this->pdftk.' ';

        if(!sizeof($this->files)) {
            throw new Exception("No files specified!");
        }

        foreach($this->files as $file) {
            $cmd .= ' "'.$file.'" ';
        }

        $cmd .= ' cat output '.$destination;
        
        return $cmd;
    }

    function execute($cmd) {
        $ret = null;
        $output = array();

        exec($cmd, $output, $ret);

        if($ret !== 0) {
            throw new Exception("Execution returned error: '$cmd' ($ret)");
        }
    }
}

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Verwijderd schreef op woensdag 04 januari 2006 @ 13:44:
Je kunt fpdi gebruiken. Dat is een uitbreiding op fpdf.

fpdi: http://fpdi.setasign.de/
Jaah, /me dansje doet, aan de changelog te zien nog maar een paar maanden oud. Iig jonger dan ik nog niet zolang geleden met een zelfde probleem zat.

Acties:
  • 0 Henk 'm!

Verwijderd

Sybr_E-N schreef op woensdag 04 januari 2006 @ 13:51:
[...]

Jaah, /me dansje doet, aan de changelog te zien nog maar een paar maanden oud. Iig jonger dan ik nog niet zolang geleden met een zelfde probleem zat.
Mijn PHP-PDF project is inmiddels af.
/me swingt een potje mee

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@bosmeeuw
pdftk ziet er goed uit, bedankt :)

[ Voor 7% gewijzigd door Verwijderd op 04-01-2006 14:00 ]


Acties:
  • 0 Henk 'm!

  • brokenp
  • Registratie: December 2001
  • Laatst online: 19:48
of gebruikt ghostscript

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op woensdag 04 januari 2006 @ 13:50:
Als je dingen kan installeren op de server kan je pdftk gebruiken. Op debian kan je simpelweg "apt-get install pdftk" uitvoeren. Ik heb hier ook een wrapper classje voor geschreven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//voorbeeldje:

$pdfm = new PdfMerger(array('pagina1.pdf','pagina2.pdf','pagina3.pdf'));

try {
    $pdfm->createMergedFile('merged.pdf');
}
catch($e) {
    echo "Kon niet mergen: ",$e->getMessage();
}

class PdfMerger {
    var $files;
    var $pdftk = "/usr/bin/pdftk";

    function __construct($files) {
        $this->files = $files;
    }
    
    function createMergedFile($destination) {
        $this->execute($this->getCommand($destination));
    }
    
    function getCommand($destination) {
        $cmd = $this->pdftk.' ';

        if(!sizeof($this->files)) {
            throw new Exception("No files specified!");
        }

        foreach($this->files as $file) {
            $cmd .= ' "'.$file.'" ';
        }

        $cmd .= ' cat output '.$destination;
        
        return $cmd;
    }

    function execute($cmd) {
        $ret = null;
        $output = array();

        exec($cmd, $output, $ret);

        if($ret !== 0) {
            throw new Exception("Execution returned error: '$cmd' ($ret)");
        }
    }
}
heb je hier ook een php4 versie van?
Pagina: 1