2011-11-23 17 views
10

Ho un PDF incorporato in HTML utilizzando il tag dell'oggetto. Il PDF incorporato è un grande documento e quando viene visualizzato dal mio desktop, il PDF viene visualizzato correttamente con la barra di scorrimento in tutti i browser, incluso il safari. Tuttavia, quando visualizzo la stessa pagina html in iPad, il PDF incorporato non ha una barra di scorrimento. C'è un modo in cui possiamo mostrare la barra di scorrimento in iPad per un documento PDF incorporato.Rendere scorrevole il PDF incorporato nell'iPad

Il codice utilizzato per embeding il formato PDF è

<object data="pdf.pdf" type="application/pdf" width="1000px" height="1200px" id="pdfDoc" name="pdfDoc"></object> 

ho provato con iframe troppo e anche che non funziona.

+0

barre di scorrimento non sono di primo piano in iOS, sono semplicemente un indicatore di quanto sia stato selezionato attraverso un pezzo di contenuti, di non significa che lo scorrimento è possibile. –

+0

@Albin: ha funzionato in ipad con scorrimento con un dito. Con due dita scorre il suo lavoro per me ...Si prega di trovare il link qui https://stackoverflow.com/questions/43186427/scrolling-with-single-finger-gesture-for-object-element-ipad-not-working – Krishna9960

risposta

0

Sul iPad è possibile utilizzare due dita per scorrere contenuto incorporato - questo funziona per div con overflow: scorrere

+1

Ma ancora le barre di scorrimento sono invisibili. C'è un modo in cui possiamo rendere visibili le barre di scorrimento in ipad? –

+0

@Matt Qualsiasi idea per un dito scorri in ipad. Con due il suo funzionamento. Per riferimento qui è la mia domanda https://stackoverflow.com/questions/43186427/scrolling-with-single-finger-gesture-for-object-element-ipad-not-working – Krishna9960

11

Questo sembra funzionare:

  • rendere il tag oggetto abbastanza grande per mostrare l'intero PDF e
  • contenerlo in un div con altezza e overflow limitati: auto - add -webkit-overflow-scrolling in iOS 5+ per uno scrolling nativo valido.

Ecco il codice che ho usato:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>PDF frame scrolling test</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <style> 
     #container { overflow: auto; -webkit-overflow-scrolling: touch; height: 500px; } 
     object { width: 500px; height: 10000px } 
    </style> 
    </head> 
    <body> 
    <div id="container"> 
     <object id="obj" data="my.pdf" >object can't be rendered</object> 
    </div> 
    </body> 
</html> 
+6

Ho provato questo approccio. Ma in iPad posso vedere solo l'immagine della prima pagina. Non riesco a scorrere – IfOnly

+0

@IfOnly: hai trovato una soluzione? Si prega di condividere se hai risolto il problema. Sto affrontando lo stesso :( –

+0

sfortunatamente no, invece ho fornito un collegamento al PDF e ho aperto il PDF in una vista separata – IfOnly

2

avevo bisogno la stessa cosa, ecco condivido.

problemi che ho affrontato:

Si prega di provare quanto segue:

http://jsfiddle.net/aknMJ/2/embedded/result/

trucchi usati:

  1. Leggi la larghezza del documento e scalare la cornice PDF in base a tale
  2. "width: 100%" non funziona con iframe in iPad, quindi avevo bisogno di usare le trasformazioni CSS3
  3. Attendere fino a quando il PDF non è stato completamente caricato e quindi mostrare & ridimensionare la cornice PDF. Altrimenti il ​​contenuto è stato ritagliato.
$('#pdfFrame').hide(); 
var pdfFrame = document.getElementById('pdfFrame'); 
pdfFrame.contentWindow.location.replace(PDF_URL); 
$('#pdfFrame').on('load', function() { 
    $('#pdfFrame').show(); 
    var documentWidth = $(document).width() 
    var scale = (documentWidth/width) * 0.95; 
    $('#pdfFrame').css("-webkit-transform", "scale(" + scale + ")"); 
}); 
+0

mi sento come se avessi passato settimane con questo problema e ora sono così esausto, ma trovo una soluzione per me: $ ('# pdf_iframe'). css ("- webkit-transform", "scale (" + 1.63 + ")"); $ ('# pdf_iframe'). css ("zoom", " 0,63 ") La combinazione di queste due proprietà dopo che il pdf è stato caricato in modo dinamico riesce ad adattare correttamente la larghezza dei documenti pdf all'iPad.Se qualcuno vuole spiegazioni, sentitevi liberi di informarmi –

+0

sulla questione scroll, purtroppo ma il lavoro soluzione è rendere fissa l'altezza di iframe e questa altezza deve essere uguale alla dimensione del pdf. –

+0

sul mio primo commento - devi sperimentare con i valori per renderlo in forma. i valori nell'esempio funzionano solo per il mio caso, penso. –

0

pdf.js è perfettamente funzionante nel nostro caso.

È possibile controllare la soluzione di 1-linea completa qui: Make embedded PDF scrollable in iPad

Buona fortuna

+2

PDF.js causa perdite di memoria enormi su iOS, non è consigliabile utilizzarlo affatto. – Cenobyte321

+0

Hai un'alternativa? Questa è l'unica soluzione di lavoro che abbiamo finora. – VanBoch

+0

In iOS il tag utilizza molta meno memoria, anche se richiede più tempo e fatica per farlo funzionare correttamente (scorrimento e ridimensionamento). – Cenobyte321

Problemi correlati