2012-03-27 63 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领域,这是行不通的!

你有什么想法吗?对不起,这不是一个真正的答案,但它不可能发表评论:)