【问题标题】:Zoom/Pinch the pdf which is loaded in a UIWebView缩放/捏合加载在 UIWebView 中的 pdf
【发布时间】:2013-07-01 00:08:30
【问题描述】:

我已经从资源包的 UIWebView 中加载了一个 PDF 文件。

现在,我无法缩放/捏合 PDF 文件。

我找到了以下 2 个相关链接,但没有一个答案被标记为正确 -

  1. How to zoom webView with pdf file

  2. Enable zooming/pinch on UIWebView

如何使已从资源包加载到 UIWebView 中的 PDF 可缩放/可捏合,以下解决方案是否有效?

  1. Problem with pdf while opening in UIWebView

感谢您的帮助。

【问题讨论】:

  • 您是否尝试过任何找到的解决方案?
  • 为什么不使用 Quick Look 框架来显示 pdf 文件?
  • only yourwebView.scalesPageToFit = YES; 无需其他额外代码即可在 webviwe 中加载 PDF,然后 scalesPageToFit 设置为是

标签: ios pdf uiwebview resourcebundle pinchzoom


【解决方案1】:

Interface Builder 上的 WebView 中添加检查以 Scale Page To Fit 并启用 Pinch ZoomIn ZoomOut ;)

或者,如果您想更好地处理您的 PDF,请尝试查看以下代码:

- (void)viewDidLoad 
{
    [super viewDidLoad];

    [webView loadRequest:[NSURLRequest requestWithURL:@"http:pdfURL"]];

    NSString *path = [[NSBundle mainBundle] pathForResource:@"yourPDFFile" ofType:@"pdf"];
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest * request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];
    //--------------AND HERE USE SCALE PAGE TO FIT------------------//
    [webView setScalesPageToFit:YES];

}

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    //这样试试

    NSString *urlstr=@"www.example.com/yy.pdf";
    web=nil;
    web=[[UIWebView alloc] initWithFrame:CGRectMake(0, 98, 320, 367)];
    web.delegate=self;
    [self.view addSubview:web];
    [web loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlstr]]];
    UIPinchGestureRecognizer *pgr = [[UIPinchGestureRecognizer alloc]
                                     initWithTarget:self action:@selector(handlePinch:)];
     pgr.delegate = self;
     [web addGestureRecognizer:pgr];
    

    // 目标动作

     - (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer
     {
      recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
    recognizer.scale = 1;
      }
    

    在此之前在 .h 中添加 UIGestureRecognizerDelegate。希望对你有帮助..

    【讨论】:

      【解决方案3】:
      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
      
      NSString *documentsDirectory = [paths objectAtIndex:0];
      
      NSFileManager *fileManager = [NSFileManager defaultManager];
      
      if ([fileManager fileExistsAtPath:documentsDirectory]) 
      {
          NSURL *url = [NSURL fileURLWithPath:strFileName];
          NSURLRequest *request = [NSURLRequest requestWithURL:url];
          [webView setScalesPageToFit:YES];
          [webview loadRequest:request];
      }
      

      【讨论】:

        猜你喜欢
        • 2011-10-31
        • 1970-01-01
        • 1970-01-01
        • 2018-08-27
        • 1970-01-01
        • 1970-01-01
        • 2014-08-02
        • 2013-03-20
        • 2017-02-22
        相关资源
        最近更新 更多