У меня есть один вопрос. Возможно ли распечатать изображение, которое временно сохраняется? Я сохранил изображение, как это делается в этом example вопроса о stackoverflow.Печать временно сохраненного изображения через AirPrint
Но когда я пытаюсь использовать это изображение для печати через 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];
}
}
Но принтер может печатать (я тестировал с починкой изображением) ... поэтому принтер не кажется проблема. Спасибо за вашу помощь заранее.
UPDATE Я сделал некоторые изменения в коде/добавили несколько строк кода:
[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', причина: '- [__ NSPlaceholderArray initWithObjects: подсчитывать]: попытка вставить ноль объект из объектов [0]
Или не возможно иметь доступ к этому файлу? –