Quali strumenti posso utilizzare per la creazione e la stampa di documenti professionali in PHP? [chiuso]

1

Sono in procinto di costruire un nuovo sistema di gestione della pegno per uno dei miei clienti, una fondazione di beneficenza. Ne ho già creato uno per loro (è stato fatto usando Delphi), ma il suo set di funzionalità è un po 'limitato.

Ora, ho deciso di passare a PHP e utilizzare il framework Laravel per gestire il database per il nuovo sistema: il suo ORM Eloquent mi consente di implementare facilmente nuove funzionalità che sono necessarie al momento. Questo è buono e bene - so tutto ciò che devo fare lì. Tuttavia, non sono sicuro di quale direzione prendere quando si tratta di creare, salvare e stampare documenti che verranno consegnati a mano ai donatori.

Al momento, utilizzava Word per elaborare i documenti, ovvero creare fatture, lettere di apprezzamento e qualsiasi altro modello che potesse essere selezionato durante la presentazione di un impegno. Il fatto è che non sono estremamente soddisfatto dell'attuazione e non credo che questa sia la strada migliore da percorrere. Ci sono state volte in cui i documenti non sono stati stampati correttamente o più documenti stampati (dove ne era necessario uno solo).

Tuttavia, potrei limitarmi a Word, a patto che PHP sia in grado di gestirlo correttamente e mostrarmi i progressi man mano che procede (es. Apertura di Word - > Apertura modello di fattura (aziende) - > Sostituzione di variabili - > Salvataggio - > Stampa - > Chiusura - & gt ; Dichiarazione sulla mission del progetto alimentare di apertura - > Sostituzione delle variabili - > Salvataggio - > Stampa - > Chiusura ... ecc.). Immagino che le notifiche di progresso non siano necessarie, ma mi piacerebbe averle lì - nel caso in cui si blocchino, l'utente sarebbe in grado di vedere qualunque cosa possa essere in difficoltà.

Suppongo che potrei farlo usando uno script jQuery (con AJAX) che si interfaccia con uno script PHP, ma onestamente non ho idea di come farlo. (Nota: dovrei usare AJAX poiché Laravel usa l'output bufferizzato.)

So anche che potrei passare le informazioni su un impegno a un EXE che gestirà la stampa da solo, ma non penso di voler utilizzare questa implementazione poiché ho intenzione di rendere il sistema multipiattaforma .

Domanda 1: Esiste un pacchetto per PHP che mi consente di creare documenti, salvarli e quindi stamparli? In caso contrario, esiste un pacchetto adatto che gestisce Word senza difficoltà e con una vasta gamma di funzionalità?

Se è quest'ultimo, dovrei essere in grado di accedere all'intera API COM in modo da impedire che i dialoghi saltino in background e interrompano la procedura.

Domanda 2: è disponibile un pacchetto (jQuery, AJAX) che mi consenta di tenere traccia dell'avanzamento della procedura di creazione del documento?

Modifica

Dopo aver riconsiderato tutto e valutato i pro ei contro, vorrei porre l'accento sulla stampa qui. Quando l'utente invia un impegno al database, ho bisogno che il documento venga stampato immediatamente. Non voglio necessariamente concentrarmi solo su uno strumento per la creazione di documenti. Il motivo per cui ho posto la mia domanda è perché preferirei trovare qualcosa che possa fare sia la creazione che la stampa di ogni documento. Inoltre, non voglio renderlo troppo difficile per me stesso. Questo è il motivo per cui originariamente ho scelto Word, ed era molto più facile da gestire da un'applicazione Delphi.

Per questo motivo, lascerò aperta la domanda (nel caso in cui venga proposta qualcosa di molto interessante), ma farò una nuova domanda che è un po 'più specifica del problema da cui è scaturita questa domanda.

(A coloro che hanno risposto finora, grazie per il tuo aiuto e mostrandomi le varie opzioni.)

    
posta Mike Rockétt 31.03.2013 - 12:35
fonte

3 risposte

2

Non credo che PHP da solo sia adatto per questo compito e suggerirei di guardare a LaTex, finché puoi lavorare con i PDF , invece dei file di Word.

Il lattice viene utilizzato principalmente per la composizione di testi scientifici, ma può fare qualsiasi cosa relativa alla composizione e al layout del testo. Nella scienza, sostituisce comunemente la parola. I documenti .tex sono file di testo scritti principalmente a mano, ma essendo un file di testo, l'uso di php è semplice.

Nel tuo caso, il flusso di lavoro è il seguente:

  1. Usa PHP per caricare i dati che vuoi stampare

  2. Avere uno script PHP per generare un file .tex

  3. compila il file in lattice in un pdf.

risposta data 31.03.2013 - 13:30
fonte
1

Ci sono diverse opzioni a tua disposizione qui.

Se l'output di Word è un requisito irrinunciabile, guarda in docx: fondamentalmente è compresso in formato XML, quindi generarlo in PHP dovrebbe essere abbastanza semplice: raccogliere i dati, caricarli in un formato XML e convertirli in XML di Word con XSLT , quindi comprima.

Se il PDF è accettabile, LaTeX è il tuo strumento preferito: produce un bel risultato e la sua composizione automatica è molto, molto meglio di qualsiasi cosa possa mai sperare. Generare il sorgente TeX direttamente da PHP può essere un po 'scoraggiante, specialmente se non si ha familiarità con esso, ma si può passare attraverso un formato intermedio. DocBook è un'opzione; c'è un eccellente convertitore docbook-to-latex chiamato dblatex. Un'altra opzione è Pandoc, uno strumento in grado di convertire da una dozzina di linguaggi di markup (inclusi HTML, markdown, ReStructured Text and Textile) in due dozzine circa di formati di output, tra cui LaTeX. Per inciso, Pandoc può anche produrre direttamente .odt e .docx, quindi potrebbe anche essere un'opzione.

Infine, ci sono alcune librerie PDF per PHP che ti permetteranno di generare direttamente PDF, ma sono limitate in funzionalità, o proprietarie e costose, o entrambe. Quasi tutti richiedono che tu faccia scorrere il tuo testo, e assolutamente non lo vuoi, perché, francamente, è davvero molto difficile avere ragione.

    
risposta data 31.03.2013 - 15:47
fonte
0

LaTex lo farà, ma potresti provare ASCIIdoc o ReStructuredText invece, entrambi sono sistemi di formattazione leggeri. Usando docUtils , la maggior parte produrrà l'output in diversi formati, includendo .odt che è buono come .doc e può essere caricato in Word o LibreOffice se questo ti interessa più di pdf.

    
risposta data 31.03.2013 - 15:31
fonte

Leggi altre domande sui tag