2013-08-21 9 views
6

Obiettivo: un visualizzatore di PDF di base del browser che ha zoom e drag/funzione panoramica (meglio se consentire nascondendo la funzione di salvataggio) per sostituire il browser predefinito unaCome modificare il visualizzatore pdf dei browser tramite il programma (ad esempio HTML, JS, PHP)?

Problema: tutti i browser (escludere vecchio IE) ha la propria configurazione in visualizzatore di PDF, che senza trascinare/funzione panoramica

Attualmente questo codice di difetto di uso PDF viewer:

<object id = 'zoomPage' type='application/pdf' data= '1.pdf'> 
    <p>The PDF can not display 
    </p> 
</object> 

E 'possibile forzare tutti i browser (Chrome, Firefox, IE8 +) utilizzando il lettore di Adobe per aprire il file pdf usando javascript/jquery/html/php? O ci sono dei visualizzatori di PDF per la base web con le funzioni sopra menzionate?

Nota:

Per il primo approccio:

ho trovato il modo per esempio Content-Disposition: attachment

ma solo cambiare il comportamento di visualizzare per scaricare il pdf, non cambiare la preferenza ad aprire il file pdf

+1

Force (cioè sulla propria macchina) o forza che significa su chi visualizza il tuo PDF? Sul tuo computer, cambia l'associazione dei file per quel mimetype da aprire sempre con Firefox e (noiosamente) ti verrebbe probabilmente lanciato Firefox ogni volta che uno dei tuoi altri browser tenta di aprire i file "application/pdf". sulla macchina di qualcun altro? Uh, non penso. Non avrei mai permesso a JS di eseguirlo sulla mia macchina secondo i tuoi capricci e nessuno avrebbe dovuto farlo. –

+1

Se si fosse in grado di selezionare a distanza un programma esterno che il mio browser dovrebbe utilizzare per i propri file, considererei un buco di sicurezza. – mkl

+0

Se dovessi visitare un sito e ho notato che utilizzava il proprio visualizzatore di PDF o qualsiasi altro software che non ho installato/accettato di utilizzare, chiuderei la finestra del browser e inserirò nella lista nera quel sito ... I sto richiedendo dati, non software ... voglio quello che ho richiesto, niente di più, niente di meno –

risposta

7

Per approccio 2: (che consiglio) Partenza:

https://github.com/mozilla/pdf.js/ 

pdf.js è portatile visualizzatore di Document Format (PDF) che è costruito con HTML5.

PDF.js è guidato dalla comunità e supportato da Mozilla Labs. Il nostro obiettivo è creare una piattaforma basata su standard per gli standard web per l'analisi di e il rendering di PDF.

MODIFICA: per le esigenze di velocità, controllare la discussione sulle altre opzioni qui: Recommended way to embed PDF in HTML? e verificare se le altre opzioni soddisfano i requisiti.

Approccio 1 è intrinsecamente rischiosa a causa di motivi di sicurezza

+0

grazie. Questo spettatore è buono. Con pdf.js puoi convertire il pdf in canvas, quindi posso trascinarlo. L'unico problema è che è più tempo, consumo di memoria e la qualità dell'immagine (poiché è dopo la conversione) è peggiore del visualizzatore pdf nativo – user782104

+3

C'è una buona discussione in corso qui: http://stackoverflow.com/questions/291813/ consigliato-way-to-embed-pdf-in-html vedi se altri rispondono alle tue esigenze di velocità. – Slartibartfast

+0

In realtà, per Firefox questo è il visualizzatore PDF integrato. – puetzk

2

L'unico modo è possibile forzare lato client è fornendo l'alternativa ... quali pdf.js, Zoho, Google pdf viewer, Scribd, ecc (ci sono molti). Non sono sicuro che Adobe fornisca un visualizzatore PDF nel browser come previsto.

Il visualizzatore pdf predefinito è conservato in una variabile che si trova in about: config che può essere modificata solo dall'utente.

+0

grazie per la risposta, ci sono dei plugin js/jquery che possono aggiungere la funzione drag su un visualizzatore pdf? Ho provato alcuni dei plugin, ma la maggior parte di essi supporta l'elemento html, ad es. trascina su testo/img ma non su PDF viewer object. – user782104

+0

puoi utilizzare alcuni semplici trucchi ajax per far sembrare che il trascinamento avvenga sul visualizzatore pdf. usa un normale strato div html per catturare il drop e poi caricarlo nel pdf viewer. – Litmus

1

E 'possibile forzare tutti i browser (Chrome, Firefox, IE8 +) utilizzando l'adobe reader per aprire file pdf utilizzando JavaScript/jQuery/html /php?

Si potrebbe provare utilizzando un iframe che punta al file pdf. Il browser aprirà automaticamente il file pdf utilizzando un software di lettura del pdf sul computer client. Come questo:

<iframe src="yourpdffile" style="width:100%;height:500px"></iframe> 
1

non è possibile forzare qualcosa sul client per un problema di sicurezza, ma è possibile controllare con qualcosa di simile this.La mia frase precedente segue l'esperienza che ho sui browser e sulla codifica, ma forse posso dire qualcosa di sbagliato.

  1. È possibile controllare se c'è Adobe Reader utilizzando JavaScript e un codice che verificherà se v'è il lettore installato con uno script come this (ho usato queste righe mesi fa e funzionano)

  2. Prova ad usare il plugin this che forse è per te versatile (il primo link alla frase).

0

È inoltre possibile utilizzare google docs viewer per ottenere questa funzionalità.

riferisce solo questo link: https://docs.google.com/viewer

È possibile ottenere l'url iframe e metterlo nel vostro sito.

<iframe src="http://docs.google.com/viewer?url=http%3A%2F%2Fwww.yoursite.com%2Fpdf%2Ftest.pdf&embedded=true" width="600" height="780" style="border: none;"></iframe> 

si ricorda che il value del parametro url nel src è url encoded.

Partenza l'esempio JS Fiddle here