【问题标题】:iOS get error by creating a pdfiOS通过创建pdf得到错误
【发布时间】:2013-12-06 06:26:20
【问题描述】:

我想创建一个 pdf 文件,但出现 2 个错误:

<Error>: CGDataConsumerCreateWithFilename: failed to open `/test.pdf' for writing:   Operation not permitted. deflateEnd: error -3: (null).

还有这个

<Error>: CGPDFContextCreate: failed to create PDF context delegate.

我在控制器类中计算路径

- (void)viewDidLoad
{
    documentName = @"test.pdf";
    NSArray *arrayPaths =
    NSSearchPathForDirectoriesInDomains(
                                    NSDocumentDirectory,
                                    NSUserDomainMask,
                                    YES);
    NSString *path = [arrayPaths objectAtIndex:0];
    NSString* pdfFileName = [path stringByAppendingPathComponent:documentName];
    url = [NSURL fileURLWithPath:pdfFileName];

    PDFRenderer *pdf = [[PDFRenderer alloc]initWithFileName:documentName];
    [pdf renderPDF];


    [super viewDidLoad];
}

在渲染类中我调用了

UIGraphicsBeginPDFContextToFile(documentName, CGRectZero, nil);

函数,我得到了错误。

我该如何解决这个错误?

【问题讨论】:

  • 你应该先打电话给[super viewDidLoad];,而不是最后。

标签: ios objective-c pdf-generation


【解决方案1】:

您正在写入相对路径,请尝试将其更改为

PDFRenderer *pdf = [[PDFRenderer alloc]initWithFileName:pdfFileName];

即文档目录中的绝对路径。

如果您查看错误消息,您会看到正在尝试将文件写入根目录。

【讨论】:

  • 好收获。我忽略了错误的变量被传递给了渲染器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
相关资源
最近更新 更多