在iPhone上以编程方式创建PDF?

时间:2009-08-27 20:20:17

标签: iphone pdf

嘿所有人,想知道是否有人能指出我正确的方向。我很想知道如何在iPhone上以编程方式创建PDF。该文档提到了CGPDFDocumentCreateWithProvider,但我不知道如何使用它。谢谢!

3 个答案:

答案 0 :(得分:2)

同样,我不相信可以在没有外部服务的情况下在iPhone上查看PDF来呈现输出

这是不正确的。您可以在UIWebView实例中呈现PDF文档,例如:

NSString *urlPathStr = [[NSBundle mainBundle] pathForResource:@"myPDFFile" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:urlPathStr];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[myWebView loadRequest:urlRequest];

您还可以在UIView对象中呈现PDF以获得更好的效果。

iPhone尚未提供PDFKit库。

您可以查看QuartzDemo示例应用程序,了解一些用于呈现和操作PDF文档的Quartz2D方法。

答案 1 :(得分:1)

CGPDFDocumentCreateWithProvider或CGPDFDocumentCreateWithURL是您必须使用的方法。

我试过这个方法CGPDFDocumentCreateWithURL.it将在你提供给方法的url中创建一个pdf作为第一个参数。

创建后,在网页视图中加载网址以查看pdf。

您可以使用cgcontextRef类以pdf格式输入内容。

答案 2 :(得分:0)

以下是在iphone应用程序中本地读取和存储pdf的方法:

首先创建UIWebView并包含<< UIWebViewDelegate >>

  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
  NSString *documentsPath = [paths objectAtIndex:0];
  NSString *filePath = [documentsPath stringByAppendingPathComponent:@"YourPDF.pdf"]; 
 if(![[NSFileManager defaultManager] fileExistsAtPath:filePath]){
           // download file , here "https://s3.amazonaws.com/hgjgj.pdf" = pdf downloading link
         NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"https://s3.amazonaws.com/hgjgj.pdf"]];
            //Store the downloaded file  in documents directory as a NSData format
         [pdfData writeToFile:filePath atomically:YES];
    }

     NSURL *url = [NSURL fileURLWithPath:filePath];
     NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
     [yourWebView setUserInteractionEnabled:YES];
     [yourWebView setDelegate:self];
     yourWebView.scalesPageToFit = YES;
     [yourWebView loadRequest:requestObj];

或者,如果您只是想从资源文件夹中读取/加载pdf,那么只需执行以下操作:

     NSString*  filePath= [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"pdf"]];
    /// or you can even read docs file as : pathForResource:@"sample" ofType:@"docx"]
     NSURL *url = [NSURL fileURLWithPath:filePath];
     NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
     [yourWebView setUserInteractionEnabled:YES];
     [yourWebView setDelegate:self];
     yourWebView.scalesPageToFit = YES;
     [yourWebView loadRequest:requestObj];

或者,如果你想从一堆文字和字符串创建自己的pdf,这就是我做的方式:   http://iosameer.blogspot.com/2012/09/creating-pdf-file-from-simple.html