2012-03-27 65 views
1

我正在爲Sencha Touch 1.1建立一個應用程序。如何在Ext.Panel中顯示PDF?Sencha Touch 1.1 - 在面板中顯示PDF

我已經嘗試通過將其src屬性設置爲PDF文件來同時使用嵌入和iframe元素。 iPad顯示PDF文件,但禁用滾動 - 即,我可以看到PDF的第一頁,但無法向下滾動查看其他頁面。

接下來我嘗試使用window.open(url_to_pdf)。這會在新選項卡中打開PDF文件,如果用戶正在從Safari瀏覽應用程序,則可以,但是如果他們已將應用程序添加到主屏幕,則沒有任何製表符的概念:用戶可以看到PDF文件(並滾動瀏覽它),但無法返回到應用程序。

我簡單地看着使用這個庫來呈現PDF格式爲HTML:http://andreasgal.com/2011/06/15/pdf-js/,但它只是看起來像矯枉過正。

回答

1

不幸的是,在iPad上使用Safari(UIWebView)時,不能在框架內滾動任何內容。如果你有服務器端生成PDF是生成,你知道,因爲你有一個固定的分辨率將適合的內容的PDF

iPad - cannot scroll inside frame

想到會是。您可以將您的一個大型PDF頁面分成多個較小的頁面。在你的服務器語言中應該有一個這樣的庫。然後,您可以利用傳送帶或Tabpanel讓用戶切換頁面,就像讀一本書一樣。

0

在我看來,這個問題有點不同。您可以在iPad Safari上實現滾動(但是用兩根手指),但是當您將相同的代碼放入Ext.Panel的「html」字段時,這不起作用。

拿這個例子:

<!DOCTYPE HTML> 
    <html> 
    <head> 
     <title>Testing iFrames on iPad</title> 
     <style> 
     div { 
     border: solid 1px green; 
     height:100px; 
     } 

    .scroller{ 
     border:solid 1px #66AA66; 
     height: 400px; 
     width: 400px; 
     overflow: auto; 
     text-align:center; 
    } 
    </style> 

</head> 

<body> 

    <table> 
     <tr> 
     <td><div class="scroller"> 
     <iframe width="400" height="400" src="http://www.supremecourt.gov/opinions/11pdf/11-393c3a2.pdf" ></iframe> 
    </div> 
     </td> 
     <td><div class="scroller"> 
     <iframe width="400" height="400" src="http://www.supremecourt.gov/opinions/11pdf/11-393c3a2.pdf" ></iframe> 
    </div> 
     </td> 
     </tr> 
     <tr> 
     <td><div class="scroller"> 
     <iframe width="400" height="400" src="http://www.supremecourt.gov/opinions/11pdf/11-393c3a2.pdf" ></iframe> 
    </div> 
     </td> 
     <td> 
     <div id="scroller" style="border:solid 1px #66AA66; 
     height: 400px; 
     width: 400px; 
     overflow: auto; 
     text-align:center;"> 
     <iframe src="http://ctan.mackichan.com/macros/latex/contrib/bibleref/samples/sample.pdf" width="100%" height="100%"></iframe> 
     </div> 
    </div> 
     </td> 
     </tr> 
    </table> 
    <div> Here are some additional contents.</div> 
</body> 
</html> 

這適用於iOS的Safari罰款,但如果你嘗試獲得最後一個div並放入Ext.Panel.html領域,這是行不通的!

你有什麼想法嗎?對不起,這不是一個真正的答案,但它不可能發表評論:)