首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CGPDF滚动到特定页面

使用CGPDF滚动到特定页面
EN

Stack Overflow用户
提问于 2016-03-06 13:31:49
回答 1查看 200关注 0票数 0

在过去的两天里,我没有找到任何与CGPDF有关的适当文件,这让我感到震惊。我试过所有可能的方法,但都失败了。这就是我想要做的。我有一个PDF显示,我是显示在一个UIWebView。我已经创建了一个核心图形PDF文档引用使用的路径,pdf是定位(NSURL)。我在上面创建了一个UIView,并处理了一个单独的触摸事件。当PDF加载和用户单击视图时,我希望页面滚动到特定的页面。我知道这可以通过计算页面的高度和宽度来完成。我想知道CGPDF中是否有一种传递页码的方法,它滚动到相关的页面。以下是我的代码

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];

    // set the pdfPafeHeight to -1 so it gets calculated.
    self.pdfPageHeight = -1;

    // set the delegate of the UIWebView's underlying UIScrollView to self.
    self.webView.scrollView.delegate = self;

    // create an NSURLRequest to load the PDF file included with the project
    _filePath = [[NSBundle mainBundle] pathForResource:@"Sample" ofType:@"pdf"];
    _url = [NSURL fileURLWithPath:_filePath isDirectory:NO];
    _urlRequest = [NSURLRequest requestWithURL:_url];

    // create a Core Graphics PDF Document ref using the same NSURL
     _pdf = CGPDFDocumentCreateWithURL((CFURLRef) _url);

    // use CGPDFDocumentGetNumberOfPages to get the number of pages in the document
    self.pdfPageCount = (int)CGPDFDocumentGetNumberOfPages(_pdf);

    // load the PDF file into the UIWebVie

    UITapGestureRecognizer *singleFingerTap =
    [[UITapGestureRecognizer alloc] initWithTarget:self
                                            action:@selector(handleSingleTap:)];
    [self.view addGestureRecognizer:singleFingerTap];

    [self.webView loadRequest:_urlRequest];
}

这是我想要处理UIVIEW的单一点击。我只是想知道CGPDF中是否有什么方法可以在我将页码传递给它时滚动到特定的页面。

代码语言:javascript
复制
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-16 19:12:07

对于您想要实现的目标,没有API,即使您能够使用私有API,如果这个应用程序只是用于企业安装,并且不需要访问app -这将是一个棘手的问题,任何解决办法都可能与一个主要的iOS版本更新中断。如果你想走这条路,你可以回顾一下视图控制器的层次结构,然后会发现苹果公司内部有一个名为CorePDF的框架,它有一个你可能可以访问的内部私有API --但是要小心,并且要知道这不是apps应用程序的解决方案。

另一种方法是从头开始使用CGContextDrawPDFPage绘制PDF页面,构建自己的缓存、滚动视图和查看controllers+gesture处理。我们在商业PSPDFKit SDK上这样做,我从2010年就开始工作了--这比你想象的要多。我们最终还继续使用自定义呈现器,以改进与广泛可用的PDF文件的兼容性,并提供比Apple的呈现器更好的性能,但是并非每一种用例都需要这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35827458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档