Domanda

C'è qualche libreria PHP PDF che possono sostituire le variabili segnaposto in un PDF esistente, ODT o DOCX documento e generare un file PDF come il risultato finale, senza rovinare il layout?

Requisiti:

  • Non necessita di terze parti servizio web

  • Possibilità di eseguire sul web hosting condiviso sarebbe l'ideale (nessuna installazione binari / pacchetti richiesto)

Intendiamoci, una libreria che è in grado di caricare un file di testo in formato PDF e l'inserto esistenti a livello di codice in una posizione specifica è non abbastanza per il mio caso d'uso.

Per quanto riguarda i miei spettacoli di ricerca, non v'è alcuna libreria che può fare questo:

  • TCPDF può generare solo i documenti da zero

  • FPDI in grado di leggere i modelli PDF già esistenti, ma può solo aggiungere contenuti a livello di codice (nessuna sostituzione variabile di modello)

  • Ci sono varie librerie di template DOCX / ODT là fuori, ma non lo fanno PDF uscita

PHPDOCx afferma di essere in grado di fare esattamente quello che mi serve - ma non offrono una versione di prova e non sono andare a comprare un gatto in un sacco, soprattutto se ci sembra essere nessun altro prodotto sul web che fa questo. Trovo difficile credere che possano fare questo senza problemi -. Se avete fatto con successo questo di utilizzare il prodotto, si prega di due righe qui

I Am che si affaccia qualcosa?

C'è un modo per farlo utilizzando i moduli PDF? Sto creando i documenti di origine in OpenOffice 3.

I può essere in grado di utilizzare i comandi standard di Linux (pdftk è disponibile per esempio, provare che fuori in questo momento.)

  

Aggiornamento: * Argh * Mi è stato chiamato fuori ufficio e la generosità scaduto nel frattempo!. Avvio di una nuova taglia:. Per quanto riguarda i miei spettacoli di test, nessuna soluzione funziona per me perfettamente ancora

     

Aggiornamento II: cercherò l'approccio pdftk presto, ma sto anche iniziando un altro di taglie per un altro giro di raccolta di input aggiuntivo. Questa domanda ha ora visto 1300 punti rep in taglie, deve essere una sorta di un record:)

È stato utile?

Soluzione

Pekka,

ho guardato in precedenza a questo, penso che si può utilizzare pdftk (un'utility a riga di comando), di compilare un modulo PDF utilizzano file di dati FDF / XFDF, che si potrebbe facilmente generare dall'interno PHP. Quello era l'opzione migliore che ho visto finora, anche se ci può essere una libreria nativa.

pdftk è molto utile, in generale, vale la pena avere uno sguardo.

Aggiornamento: Date un'occhiata qui: http: // php.net/manual/en/book.fdf.php

Altri suggerimenti

Questa non è molto pratico, ma per completezza: Se si dispone già di un modello ODT, allora si potrebbe benissimo ritenere che come modello. Modifica del content.xml OpenDocument e segnaposto sostituzione in esso è abbastanza semplice. Se è così, si potrebbe usare unoconv o pyodconverter per trasformare l'ODT in un PDF finale.

unoconv -f pdf -o final.pdf template.odt

Molto, ovviamente, questo richiede un setup completo OpenOffice (ONU e scrittore) sul server web. E ovviamente non tutti i web host sarebbe andato con quello! haha. Anche se è semplice su qualsiasi configurazione di Debian o Fedora. La velocità di esecuzione non sarebbe probabilmente stellare neanche. Ma allora potrebbe essere l'approccio più pulito, dal momento che OOo governa entrambi i formati meglio di qualsiasi classe PHP potrebbe mai.

Hai pensato di usare qualcosa come XSL: La formattazione Objects (XSL: FO)? Fondamentalmente sono documenti XML che vengono elaborati e trasformati in PDF. Che fa stringa - o, meglio, DOM - sostituzioni all'interno di tale dovrebbe essere abbastanza semplice. Supporta embedding immagini, link, annotazioni, ecc.

Non è PHP, ma ci sono una serie di wrapper PHP per esso con modi di utilizzo tramite exec, ecc Non è un ideale, ma si prende cura della porzione modello completamente. Per qualche informazione in più: http: // techportal .inviqa.com / 2009/12/16 / trasformando-xml-con-php-and-xsl /

C'è un'implementazione disponibile come progetto Apache - http://xmlgraphics.apache.org/fop/

FPDF e v'è un'altra estensione su di esso, che non riesco a ricordare, che consente di importare i modelli

La cosa migliore sarebbe quella di generare l'intero documento al volo, con il modello definito programatically utilizzando FPDF o qualcosa di simile. In questo modo, il testo non sarà tagliato fuori dai paragrafi o qualcosa di simile, e si può facilmente le immagini di posizione / di altri elementi, come richiesto.

ritardo, ma è possibile utilizzare OpenSource modello progettista https://github.com/applicius/dhek/releases , per definire pkaceholders / aree su qualsiasi PDF esistente, poi caricarlo in PHP (come è JSON formato) e scrivere di conseguenza il PDF originale utilizzando FPDF lib, per generare PDF personalizzato con dati dinamici scritti su.

Benche non è esattamente cosa ti ha chiesto, si può prendere in considerazione di farlo in due fasi: utilizzando alcuni sytem php template ( Smarty , dwoo ) per generare pagina HTML e quindi utilizzando strumenti come html2pdf convertirlo in pdf. Io lo utilizzo, ed i risultati sono buoni (nessun problema con layout di pagina, ecc)

Naturalmente dipende dei documenti di ingresso (si può usare HTML invece di PDF / ODT come sorgente) e la complessità del layout di quelli.

Ok Sto cercando di aiutare a risolvere il problema un po '.

In primo luogo la risposta per un paio di tua domanda.

Q -? Am I si affaccia qualcosa

A - No. C'è una libreria PHP PDF che può sostituire le variabili segnaposto in un PDF esistente e generare un file PDF come il risultato finale, senza rovinare il layout

Q - C'è un modo per farlo utilizzando i moduli PDF

?

A - Sì. absolutelly il tric a fare questo è quello di utilizzare un PDF Forms

Per entrambi la risposta è possibile utilizzare Justin Koivisto riempimento PDF Library campo modulo php. Per maggiori dettagli si prega di andare a http://koivi.com/fill-pdf- form-campi / tutorial.php . Date un'occhiata qui per ulteriori informazioni.

di credito a Justin Koivisto per il suo lavoro

P.S

Per risolvere il problema per la visualizzazione di una tabella come in uscita dal modulo pdf perche a prendere qualche lettura su Oracle Business Intelligence Publisher Guida per l'utente - Creazione di un PDF Template

Io aggiungo questa nuova risposta poiché l'estensione DFF PHP ora è morto.

Ho appena seguito queste istruzioni e ha finito per l'esecuzione di uno script perl poi il comando pdftk

Sono abbastanza consapevole che è ben lungi dall'essere una soluzione PHP vero e proprio, ma è affidabile e abbastanza facile da implementare su qualsiasi piattaforma * nix.

Gli strumenti descritti ci sono anche disponibili su Debian, nel caso ve lo stiate chiedendo.

E 'un pò po' in ritardo, ma hanno uno sguardo alla PDFTemplate Biblioteca fa ricade perfettamente ciò che si vuole . È possibile creare file Open Document (ODT) e segnaposto aggiuntivi in ??esso. La biblioteca PDFTemplate può compilare questi segnaposto (anche con immagini) e creare un file PDF.

ODT file con i segnaposto in PDF

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top