comment ouvrir une page spécifique sur le visualiseur Docs de Google
j'utilise le visualiseur Docs de google pour afficher un document pdf dans une page html et je voudrais ouvrir le document à partir de la page 20 au lieu de 1 par exemple.
il n'y a pratiquement aucune documentation sur le service de visionnement Docs de Google. Ils disent dans sa page web https://docs.google.com/viewer que le service n'accepte que deux paramètres (url et embarqué) mais j'ai vu d'autres paramètres de recherche sur le web, comme "a", "pagenumber", "v" et "attid", aucun d'eux n'a rien pour moi. J'ai essayé d'ajouter #:0.page.19 à la fin de mon url (c'est l'id du div contenant le numéro de page 20 à l'intérieur du corps que google crée) mais il l'ignore ou fonctionne de manière aléatoire.
savez-vous comment dire à google docs viewer de montrer le document à partir d'une page spécifique?
5 réponses
j'ai trouvé une solution que je posterai ici juste au cas où quelqu'un se trouve dans la même situation.
chaque page dans le visualiseur docs de google iframe a un id comme :0.page.X
, étant X le numéro de la page. Appeler le service comme ça
<iframe id="iframe1" src="http://docs.google.com/gview?url=http://yourpdf&embedded=true#:0.page.20">
ne fonctionnera pas (peut-être parce que les ID des pages ne sont pas encore créés lorsque la page est rendue?)
il suffit donc d'ajouter un attribut onload à l'iframe:
<iframe id="iframe1" src="http://docs.google.com/gview?url=http://yourpdf&embedded=true" onload="javascript:this.contentWindow.location.hash=':0.page.20';">
et voilà, l'iframe sera faites défiler automatiquement vers le bas après le chargement.
notez que les indices de page sont basés sur zéro. Si vous souhaitez afficher la 20ème page d'un document dans la visionneuse, vous devez utiliser le paramètre :0.page.19
pour moi cette solution n'a pas fonctionné avec la version actuelle de Google viewer. lien vers la page spécifique sur Google Document Viewer sur iPad m'a aidé. Utilisation &a=bi&pagenumber=xx dans le bac d'alimentation supplémentaire de paramètre d'URL.
j'ai trouvé ces deux :
1) Juste une capture D'écran (Image) de page spécifique (sans navigation):
https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true&a=bi&pagenumber=12
2) un lien vers une page spécifique de PDF dans IFRAME ( navigation):
<script>
var docURL='https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true';
var startPAGE=7;
document.write('<iframe id="iframe1" onload="javascript:go_to_page('+ startPAGE +')" src="https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true"width="600" height="400" ></iframe>');
function go_to_page(varr) { document.getElementById("iframe1").setAttribute("src", docURL + '#:0.page.'+ (varr-1) );}
</script>
p. S. alors vous pouvez avoir sur votre site web <a href="javascript:go_to_page('3');">go to page 3</a>
mon PDF est de 13 pages, mais quand j'ai utilisé hash: 0.page.13
, il a seulement sauté à la page 10. J'ai dû setTimeout et d'appeler la même fonction:
seulement nécessaire de le faire une fois par page chargée, alors il semble être synchronisé correctement. Je suis sûr qu'il y est une solution plus élégante:
var is_caught_up = false;
function pdf_go(page){
$('pdf_frame').contentWindow.location.hash=':0.page.'+page;
if (!is_caught_up){
setTimeout('pdf_catchup('+page+')', 500);
}
}
function pdf_catchup(page){
$('pdf_frame').contentWindow.location.hash=':0.page.'+page;
is_caught_up = true;
}
ai Eu de travail dans l'incorporer l'observateur
en changeant l'url avec une fonction timout, ceci parce que le pdf n'est pas affiché directement
$(window).load(function() {
setTimeout(function() { $('.gde-frame').attr('src', 'https://docs.google.com/viewer?url=http://yourdomain.com/yourpdf.pdf&hl=nl&embedded=true#:0.page.15'); }, 1000);
});
il suffit de copier l'url intégrée et d'ajouter votre hachage pour la page (#: 0.page.15 > aller à la page 15)
vous pourriez vouloir changer la langue à votre propre & hl=nl
et pour les gens comment doivent soutenir ie8
si vous utilisez un boilerplate comme ceci:
<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]-->
vous pouvez modifier la sortie du lien directement vers le pdf comme ceci,
if( $("html").hasClass("ie8") ) {
$('#linkID').attr('href', 'http://yourdomai.com/yourpdf.pdf');
};
le fichier pdf sera affiché dans le lecteur de pdf à partir de IE