在过去的两天里,我没有找到任何与CGPDF有关的适当文件,这让我感到震惊。我试过所有可能的方法,但都失败了。这就是我想要做的。我有一个PDF显示,我是显示在一个UIWebView。我已经创建了一个核心图形PDF文档引用使用的路径,pdf是定位(NSURL)。我在上面创建了一个UIView,并处理了一个单独的触摸事件。当PDF加载和用户单击视图时,我希望页面滚动到特定的页面。我知道这可以通过计算页面的高度和宽度来完成。我想知道CGPDF中是否有一种传递页码的方法,它滚动到相关的页面。以下是我的代码
- (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中是否有什么方法可以在我将页码传递给它时滚动到特定的页面。
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
}发布于 2016-04-16 19:12:07
对于您想要实现的目标,没有API,即使您能够使用私有API,如果这个应用程序只是用于企业安装,并且不需要访问app -这将是一个棘手的问题,任何解决办法都可能与一个主要的iOS版本更新中断。如果你想走这条路,你可以回顾一下视图控制器的层次结构,然后会发现苹果公司内部有一个名为CorePDF的框架,它有一个你可能可以访问的内部私有API --但是要小心,并且要知道这不是apps应用程序的解决方案。
另一种方法是从头开始使用CGContextDrawPDFPage绘制PDF页面,构建自己的缓存、滚动视图和查看controllers+gesture处理。我们在商业PSPDFKit SDK上这样做,我从2010年就开始工作了--这比你想象的要多。我们最终还继续使用自定义呈现器,以改进与广泛可用的PDF文件的兼容性,并提供比Apple的呈现器更好的性能,但是并非每一种用例都需要这样做。
https://stackoverflow.com/questions/35827458
复制相似问题