2011-10-10 4 views
8

Quando gli utenti caricano determinati file sul mio sito (come .doc, .xls, .pdf, ecc.) Mi piacerebbe essere in grado di generare una miniatura di anteprima (della prima pagina del documento). Sto lavorando con PHP in uno stack LAMP, ma sarei felice con qualsiasi libreria o strumento da riga di comando che possa fare il lavoro (Linux altamente preferito).Creare un'anteprima in miniatura di documenti (PDF, DOC, XLS, ecc.) In PHP (LAMP)

+1

@BrianRoach Nope - ho già visto quella domanda prima di postare. Si riferisce solo ai PDF. Sto cercando uno strumento che possa fare documenti generali (inclusi PDF ma anche XLS, DOC e così via). – Dan

+1

bene per questo, c'è un trucco combinare entrambi questi http://stackoverflow.com/questions/1225230/php-converting-excel-xls-to-pdfs e http://stackoverflow.com/questions/467793/how -do-i-convert-a-pdf-documento-a-un'anteprima-immagine-in-php che è convertito xls o qualsiasi cosa in pdf quindi ottieni l'immagine dal pdf – aNi

+0

Sto cercando la stessa cosa e sono d'accordo che questo vale per molti documenti PDF/Office (es. LaTEX o SAS) – vol7ron

risposta

9

Non è facile convertire determinati formati di documenti in immagini. php da solo non può farlo. Il modo "corretto" per farlo è prima di tutto avere il programma installato sul tuo server che può aprire il documento in quel formato. Ad esempio, per i documenti .doc puoi usare OpenOffice ma puoi anche aprire la maggior parte degli altri formati di documento Devi quindi configurare il tuo ufficio aperto per lavorare in modalità 'headless', inviando l'output al display virtuale (XVFB è ciò che stai andando su Linux)

Lo script php chiamerà OpenOffice, passando il percorso del documento caricato. OpenOffice aprirà effettivamente quel documento. Quindi è necessario creare un'immagine dal buffer dello schermo. È possibile utilizzare ImageMagick per questo

Quindi, una volta acquisita la schermata, è possibile ridimensionarla in miniatura.

un'occhiata a questo link per maggiori dettagli

http://www.mysql-apache-php.com/website_screenshot.htm

+1

Buona risposta, ma penso che potresti aver pensato ImageMagick, nel caso qualcuno lo stia cercando – vol7ron