2012-02-08 22 views
17

Tôi đang sử dụng trình xem tài liệu của google để hiển thị tài liệu pdf trong trang html và tôi muốn mở tài liệu bắt đầu trên trang 20 thay vì 1 ví dụ.cách mở trang cụ thể trên trình xem tài liệu của Google

Hầu như không có bất kỳ tài liệu nào về dịch vụ trình xem tài liệu của Google. Họ nói trong trang web của mình https://docs.google.com/viewer rằng dịch vụ chỉ chấp nhận hai thông số (url và được nhúng) nhưng tôi đã thấy các thông số khác tìm kiếm trên web, như "a", "pagenumber", "v" và "attid", không ai trong số họ đã làm bất cứ điều gì với tôi. Tôi đã cố gắng để thêm #: 0.page.19 ở cuối url của tôi (đó là id của div chứa số trang 20 bên trong cơ thể google tạo ra) nhưng nó chỉ bỏ qua nó hoặc hoạt động một cách ngẫu nhiên.

Các bạn có biết cách yêu cầu trình xem tài liệu của Google hiển thị tài liệu bắt đầu trên một trang cụ thể không?

+0

Bất kỳ giải pháp mới nào hoạt động cho vấn đề này? – tommeeyy

Trả lời

13

Tôi tìm thấy giải pháp tôi sẽ đăng ở đây chỉ trong trường hợp ai đó ở trong tình huống tương tự.

Mỗi trang trong khung nội dung trình xem tài liệu của google có id như :0.page.X, là X số trang. Gọi dịch vụ như thế này

<iframe id="iframe1" src="http://docs.google.com/gview?url=http://yourpdf&embedded=true#:0.page.20"> 

sẽ không hoạt động (có thể vì ids trang chưa được tạo ra khi trang được trả lại?)

Vì vậy, bạn chỉ cần thêm một thuộc tính onload đến iframe:

<iframe id="iframe1" src="http://docs.google.com/gview?url=http://yourpdf&embedded=true" onload="javascript:this.contentWindow.location.hash=':0.page.20';"> 

và điều chỉnh, iframe sẽ tự động cuộn xuống sau khi tải.

Lưu ý rằng các chỉ mục trang không dựa trên. Nếu bạn muốn xem trang 20 của tài liệu trong trình xem, bạn sẽ cần sử dụng thông số :0.page.19

+2

Nó không hoạt động đối với tôi, nếu tệp bạn có giao thức khác (http so với https). Tôi tiếp tục cố gắng truy cập JavaScript không an toàn để truy cập khung ... Có giải pháp nào cho – DavidVdd

+1

Bất kỳ giải pháp mới nào hoạt động cho vấn đề này không? – tommeeyy

0

PDF của tôi là 13 trang, nhưng khi tôi sử dụng băm: 0.page.13, nó chỉ nhảy đến trang 10. Tôi đã có để setTimeout và gọi lại chức năng tương tự:

Chỉ cần thực hiện điều đó một lần cho mỗi lần tải trang, sau đó nó dường như được đồng bộ hóa đúng cách. Tôi chắc chắn có một giải pháp thanh lịch hơn:

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; 
} 
0

Got nó làm việc trong trình xem gắn vào

Bằng cách thay đổi url với một hàm timout, đây becous pdf không được trực tiếp thể hiện

$(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);

});

Chỉ cần sao chép url gắn vào và thêm băm của bạn cho trang (#: 0.page.15> sẽ được chuyển tới trang 15)

Bạn có thể muốn thay đổi ngôn ngữ để bạn riêng & hl = nl

và cho người dân như thế nào phải hỗ trợ IE8

nếu bạn sử dụng một soạn sẵn như thế này :

<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]-->

bạn có thể thay đổi sản lượng của liên kết trực tiếp đến pdf như thế này,

if($("html").hasClass("ie8")) { 


      $('#linkID').attr('href', 'http://yourdomai.com/yourpdf.pdf'); 


     }; 

pdf sẽ được hiển thị trong người đọc pdf từ IE

2

tôi thấy hai người này:

1) chỉ là một ảnh chụp màn hình (ảnh) của trang cụ thể (mà không navigation):

https://docs.google.com/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true&a=bi&pagenumber=12 

2) một liên kết đến trang cụ thể của PDF trong IFRAME (với 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. sau đó bạn có thể có trên trang web của mình <a href="javascript:go_to_page('3');">go to page 3</a>

Các vấn đề liên quan