Newsgroup: it.comp.java
Titolo: Apertura PDF

Salve a tutti,
ho un problema. Devo scaricare su un browser dei PDF di grosse
dimensioni (50mb), e vorrei fare in modo che si apra la prima pagina
immediatamente poi scarichi piano piano il resto. Questa cosa l'ho
vista funzionare, ma non ho idea di come si possa fare. Qualcuno ha
mai fatto una cosa del genere?
grazie,
Andrea


Non capisco esattamente quello che chiedi cos'è.
Uhm... Non è che stai cercando informazioni su javascript?
Javascript è un linguaggio che non ha quasi niente a che fare con Java 
nonostante i nomi siano simili. Devi chiedere nel gruppo di javascript.
Io ho visto PDF che fanno vedere le prime pagine mentre il resto viene 
scaricato, credo che il merito sia o della particolare versione del 
formato PDF usato o della versione di Acrobat Reader installato sul tuo 
PC o una combinazione delle due. Anche in questo caso questo non è il 
gruppo giusto.
-- 
Andrea Francia
http://www.andreafrancia.it/

andrea wrote:

ti serve un flash pdf reader ma non ha nulla a che fare con java.
-- 
Davide Consonni

Davide Consonni wrote:
e beccati pure questo:
http://www.adobe.com/it/products/flashpaper/
:D
-- 
Davide Consonni

 
http://www.adobe.com/it/products/flashpaper/
e pare ci sia pure questo:
http://www.downloadsquad.com/2008/02/19/scribd-launches-ipaper-embed-documents-on-any-site/
perň mi sa che sto andando mooolto OT :D
-- 
Davide Consonni

 Davide Consonni
Probabilmente anche il mio post era ot. Cmq, la soluzione che ho visto
non e` flash e non credo neanche Javascript. Da quanto ho potuto
vedere sembra sia una configurazione Apache, o almeno questo pensavo
in un primo momento. In questo caso Apache definisce dei virtual host
per alcune installazione di tomcat, e penso sia attraverso Tomcat che
viene fatta questa cosa.
To view single page:  
http://mydomain.com/books7/100001.pdf#nameddest=21
L'obiettivo finale sarebbe quello di consentire una cosa del genere,
mostrare una pagina per prima e poi scaricare le altre. QUesta cosa e`
possibile, pero`, credo che usando un Inputstream di JAva (il metodo
che sto usando io).
InputStream is = Dut.getObjectStream(connection, object_id,
object_format, object_page );
mimeType =
getServletConfig().getServletContext().getMimeType(filename.toLowerCase());
response.setContentType(mimeType);
// response.setHeader("Content-Disposition", "attachment; filename=" +
filename);
response.setHeader("Content-Disposition", "inline; filename=" +
filename+"#page=4");
response.setHeader("Accept-Ranges", "bytes");
OutputStream out = response.getOutputStream();
sendOut(is, out);
ciao,
Andrea


Ho trovato una soluzione.
bisogna aggiungere un paio di header da apache (non ho ancora provato
con tomcat, ma non credo funzionera` a causa dell'inputstream)
Header add Accept-Ranges "bytes"
Header add Cache-Control "no-store, no-cache, must-revalidate"
per farlo ovviamente bisogna avere attivo il mod_header su apache
ciao,
Andrea


E' importante salvare il PDF in formatto lineare (http://
en.wikipedia.org/wiki/Portable_Document_Format#File_structure
):
"There are two layouts to the PDF files—non-linear (not “optimized”)
and linear (“optimized”). Non-linear PDF files consume less disk space
than their linear counterparts, though they are slower to access
because portions of the data required to assemble pages of the
document are scattered throughout the PDF file. Linear PDF files (also
called “optimized” or “web optimized” PDF files) are constructed in a
manner that enables them to be read in a Web browser plugin, since
they are written to disk in a linear (as in page order) fashion."
Cosi' un reader puo' visuallizare la prima pagina senza scaricare
l'intero documento. Se salvato in formatto non-lineare devi aspettare
perche' i dizionarii sono alla fine del file.
John