2013-04-06 138 views
10

出於某種原因,iPad Safari瀏覽器不能很好地處理嵌入式PDF。當單獨啓動時,PDFs可以自行查看,但不能使用對象標籤。問題是他們不滾動。使嵌入式PDF在iPad中可滾動

我已經有了一個嵌入式pdf的jquery頁面,它很好地滾動了mozilla和chrome,但是在safari(iPad)上,PDF仍然停留在第一頁,並且不可滾動。問題是,我如何在iPad瀏覽器上進行這項工作?

類似的問題發佈在這裏Making embedded PDF scrollable in iPad但答案不是很好。他們通過使用10000px的高度,這對於一個小DOC創造了很多空白的欺騙,並有可能將不是一個非常大的文檔工作:

<!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> 

什麼辦法讓這個沒有硬編碼一個完成瘋狂的高度?

+0

是對PDF內嵌在應用中,或者從服務器看?即您是否需要在UIWebView或Mobile Safari中展示PDF? – epatel 2013-04-06 18:38:39

+0

PDF位於服務器上。最終,PDF將在服務器上動態更新,並且應用程序將顯示它們,而不管它們是什麼形狀或大小。該應用程序的其餘部分是在jQuery中完成的,而ipad是我們用戶的偏好。現在我將PDF發佈到一個新的瀏覽器窗口中,因爲它可以工作,但理想情況下,我想將它們嵌入到頁面中,以便它們不必離開。 – chrisnova10 2013-04-06 18:59:12

+0

沒有本機應用程序? – epatel 2013-04-06 19:06:46

回答

15

我已經嘗試多年尋找解決這個問題的方法。我會盡量挽救任何人尋找它的時間:這個問題沒有辦法解決。 Safari處理PDF渲染的方式無可避免地與將PDF嵌入到網頁中的整個概念相沖突。此外,iPad上的所有瀏覽器都需要使用Safari渲染引擎,因此您甚至無法指示用戶安裝其他瀏覽器。

嵌入PDF的體驗結果的唯一方法是使用某種第三方渲染實用程序。這裏有一些jQuery解決方案,但爲了我的目的,我發現最簡單的方法是在對象或iframe標記中嵌入google文檔查看器鏈接。這是比較簡單的事情,你可以在這裏找到簡單的指令:

https://docs.google.com/a/dloweb.com/viewer

該解決方案包括良好的顯示效果呈現和簡單的分頁和變焦控制。如果將它嵌入到iframe或object標記中,或者它不起作用,請確保包含& embedded = true選項。查看器需要公開訪問您的文檔的URL,所以如果您有安全問題,像我一樣,您需要編寫一個Web服務來從單個使用令牌提供文檔。

這是一個很好的網頁,列出其他幾個選項,你應該尋找一些更強大的:

http://www.jqueryrain.com/2012/09/best-jquery-pdf-viewer-plugin-examples/

+0

jqueryrain鏈接重定向到一個騙局 - 「你贏得了免費的iPhone」頁面。我想知道頁面內容是否可以在其他地方使用? – 2017-09-17 18:35:15

+0

我明白了。我想我應該在我的帖子上輸入過期日期。 (警告:鏈接不保證在發佈後四年內運行...)或類似的東西。 8^P – MSD 2017-09-18 20:30:14

+1

我認爲這就是爲什麼人們不斷髮表評論,我們不應該只發布鏈接,但總結其內容。 – 2017-09-21 13:15:29

0

你並不需要的對象的高度設置爲一些瘋狂,只需將它設置爲與容器元素相同的高度即可。要使用無望的Safari渲染對象進行滾動,您需要使用兩個手指(向上/向下和向左/向右)。

我也有這個特性在我的容器元素設置:

overflow: scroll; 
-webkit-box-pack: center; 
-webkit-box-align: center; 
display: -webkit-box; 

東西我不能達到爲得到它填補了容器上的寬度,但至少你可以瀏覽文檔。

2

MSD的答案相當準確。 我一直試圖做許多不同的方式,從一些庫的建議使用對象,嵌入元素等

在任何情況下,它不會滾動,我(的iPad 2的空氣和至少1空氣在iOS 8上)。或者它過度延伸的字母滾動,或僅適用於簡短的1-2頁文檔。

解決方案我發現效率最高的是通過用戶代理提供iPad用戶直接訪問文件的鏈接,他們將能夠在標籤中看到它,並很好地通過它進行滾動。 它沒有嵌入,但它是我能找到的最有效和最有效的解決方案,可以滿足我當前的需求。

我希望它能幫助有人鑽研同樣的東西

+0

這不是一個*解決方案*,而是一個解決方案 – Akash 2017-10-22 16:42:21