【问题标题】:NSString to PDF file - iOSNSString 到 PDF 文件 - iOS
【发布时间】:2018-01-18 11:59:35
【问题描述】:

我从网络服务接收一个字符串,我想将它存储为 pdf 文件。

我知道有人问过,但答案总是一样的。我试过了,没用,解释不够。

所以,这就是我正在做的:

NSData *data = [documentString dataUsingEncoding:NSUTF8StringEncoding];
NSString *formattedName = [NSString stringWithFormat:@"%@.pdf", name];
NSString *pdfPath = [@"documents/" stringByAppendingPathComponent:formattedName];
NSError *error = nil;
if([data writeToFile:pdfPath options:NSDataWritingAtomic error:&error]) {

}

if没有进入,我认为文件没有生成。

我正在使用 Objective-c,xcode 9。

我应该修改什么?

【问题讨论】:

  • 打印错误可能是文件路径不正确
  • @Sh_Khan "文件夹“myname.pdf”不存在。" UserInfo={NSFilePath=documents/myname.pdf, NSUserStringVariant=Folder, NSUnderlyingError=0x6000006587e0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}} 你说得对,但我不明白,为什么它应该存在?我要创建它
  • 您的文档路径不正确
  • @JaimeAlcántaraArnela 引用此链接 => stackoverflow.com/questions/5437809/…

标签: ios objective-c pdf


【解决方案1】:

创建它

NSError*error=nil;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"/Application Support"];

NSString*filePathC = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"historyImages"]];


if(![[NSFileManager defaultManager]fileExistsAtPath:filePathC])
{
    if(

       [[NSFileManager defaultManager] createDirectoryAtPath:filePathC
                                 withIntermediateDirectories:YES
                                                  attributes:nil
                                                       error:&error])
    {
        NSLog(@"created");
    }
    else
    {
        NSLog(@"not created");
    }
}
else
{
    NSLog(@"exists");
}

///

  NSData *data = [documentString dataUsingEncoding:NSUTF8StringEncoding];
  NSString *formattedName = [NSString stringWithFormat:@"%@.pdf", name];
  NSString *pdfPath = [filePathC stringByAppendingPathComponent:formattedName];
  NSError *error2 = nil;
 if([data writeToFile:pdfPath options:NSDataWritingAtomic error:&error2]) {

 }

【讨论】:

  • 抱歉让您久等了。我已经尝试过了,现在它创建了路径和 pdf,但我已经转到路径并尝试手动打开文件。它说“它无法打开”,默认来自mac,用atom打开我看到它只是一个包含字符串中所有字节的文件。所以,你知道我做错了什么吗?它似乎没有正确地转述。感谢您的帮助。
  • 我错误地编码了数据。正确的方法是: NSData *data = [[NSData alloc] initWithBase64EncodedString:documentString options:0];已经解决了,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 2011-09-13
  • 1970-01-01
  • 2011-12-08
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多