Image 通过AirPrint打印临时保存的图像

Image 通过AirPrint打印临时保存的图像,image,cocoa-touch,temporary,airprint,Image,Cocoa Touch,Temporary,Airprint,我有一个问题。是否可以打印仅临时保存的图像? 我保存了图像,因为它是在一个关于stackoverflow的问题中这样做的 但是当我试图用这张图片通过AirPrint打印时,它不起作用 - (IBAction)btnPrintTapped:(id)sender { UIImage* image = nil; UIGraphicsBeginImageContext(_scrollView.contentSize); { CGPoint savedConte

我有一个问题。是否可以打印仅临时保存的图像? 我保存了图像,因为它是在一个关于stackoverflow的问题中这样做的

但是当我试图用这张图片通过AirPrint打印时,它不起作用

- (IBAction)btnPrintTapped:(id)sender {

    UIImage* image = nil;

    UIGraphicsBeginImageContext(_scrollView.contentSize);
    {
        CGPoint savedContentOffset = _scrollView.contentOffset;
        CGRect savedFrame = _scrollView.frame;

        _scrollView.contentOffset = CGPointZero;
        _scrollView.frame = CGRectMake(0, 0, _scrollView.contentSize.width, _scrollView.contentSize.height);

        [_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
        image = UIGraphicsGetImageFromCurrentImageContext();

        _scrollView.contentOffset = savedContentOffset;
        _scrollView.frame = savedFrame;
    }
    UIGraphicsEndImageContext();

    if (image != nil) {
        [UIImagePNGRepresentation(image) writeToFile: @"/tmp/test.png" atomically: YES];
        UIImage *yourImage = [UIImage imageNamed:@"/tmp/test.png"];
        NSArray *itemsToShare = @[yourImage];
        UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
        activityVC.excludedActivityTypes = @[ UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypePostToFacebook, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo]; 
        [self presentViewController:activityVC animated:YES completion:nil];
    }    
}
但是打印机能够打印(我用修复图像测试了它)…所以打印机似乎不是问题。 提前谢谢你的帮助

更新 我对代码做了一些更改/添加了几行代码:

[UIImagePNGRepresentation(image) writeToFile: @"/tmp/test.png" atomically: YES];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* path = [documentsDirectory stringByAppendingPathComponent:@"/tmp/test.png" ];
UIImage* image = [UIImage imageWithContentsOfFile:path];

UIImage *ImageItem = image;
但它只在我设置
writeToFile:@“test.png”
时起作用,但我只能保存一次图像,不能覆盖它

当我使用上面的代码执行此操作时,有一个错误

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[\u NSPlaceholderArray initWithObjects:计数:]:尝试从对象[0]插入nil对象'


经过一点尝试,现在终于可以工作了

if (image != nil) {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                             NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString* path = [documentsDirectory stringByAppendingPathComponent:
                          @"test.png" ];
        NSData* data = UIImagePNGRepresentation(image);
        [data writeToFile:path atomically:YES];


        UIImage* image = [UIImage imageWithContentsOfFile:path];
        UIImage *yourImage = image;

或者无法访问此文件?