【发布时间】:2011-08-29 13:20:31
【问题描述】:
我有一个 ipad 应用程序,它在 UIWebView 中显示来自 NSData 的 powerpoint 演示文稿,我需要知道单张幻灯片的宽度/高度,以便知道在前进到下一张幻灯片时滚动多远。
在 PDF 中,我可以使用 CGPDFDocumentRef 进行计算,如下所示,但我找不到相应的 powerpoint API,而且由于它是 microsoft 格式,我什至怀疑它是否存在。
我可以使用 javascript 来确定整个演示文稿的宽度/高度,但这并不能帮助我知道一张幻灯片要前进多远,
为 PDF 做我需要的代码:
CFDataRef myPDFData = (CFDataRef)presentationContent;
CGDataProviderRef provider = CGDataProviderCreateWithCFData(myPDFData);
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithProvider(provider);
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, 1);
CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
int pageHeight=(int)pageRect.size.height;
int pageWidth=(int)pageRect.size.width;
//now I can advance to the proper page by doing a scrollto pageHeight*currentPage
【问题讨论】:
-
由于幻灯片的高度和宽度在 PPT 中是演示级别的属性(换句话说,所有幻灯片的尺寸都相同),如果您可以导出演示文稿的高度,那么您就有了每个幻灯片的高度在演示文稿中滑动。但您实际上是在使用 PPT 和幻灯片,还是使用其他应用程序来表示演示文稿的内容?
-
@Steve,我正在使用 UIWebView 的幻灯片/演示内容表示。您可以在其上运行 javascript 来确定内容高度/宽度,但高度 = 整个演示文稿的高度,从幻灯片 1 中的第一个像素到幻灯片 N 中的最后一个像素。如果我可以确定幻灯片的数量,我可以取那个数字和分,但我不知道幻灯片的数量,也没有办法知道。
-
所以实际上整个演示文稿变成了一个大的可滚动网页或类似的东西?我从上下文中认为可能是这种情况,但不确定。每张幻灯片是否都被转换为图像(如果是,你能从 DOM 中获取它的高度吗?)
-
是的,它变成了一个巨大的可滚动网页 - 但它不会将其解析为 HTML,因此我无法按照您的建议抓取一张幻灯片作为图像。我目前正在试验 document.all[someindex].offsetHeight 和 offsetWidth - 但每次 ppt 加载时“someindex”似乎都会改变。我认为有一个我可以寻找的模式,如果我找到一种可靠的方法来获取幻灯片高度,我会发布...仅供参考,有时 document.all.length 是 10 左右,有时 > 300,并且要寻找的正确元素被埋在那个烂摊子的某个地方。 :(
-
演示文稿到底变成了什么?您可以在某处发布示例吗?我怀疑我能理解它,但我很想看看它。
标签: iphone objective-c ios powerpoint dimensions