Wenn ich versuche, den aktuellen Screenshot (für eine iPad-Ansicht) zu drucken, erhalte ich einen seltsamen Fehler im Konsolenfenster: failed to find PDF header: %PDF not found
.Konsolenfehler: PDF-Header konnte nicht gefunden werden: `% PDF 'nicht gefunden
Ich frage mich, warum dieser Fehler im Konsolenfenster ausgelöst wird? warum es etwas erwähnt, das mit PDF
in Verbindung steht, obwohl ich PDF
verwandte Sachen im gesamten Projekt nicht verwende.
Der Code Im mit der Screenshot drucken ist:
- (IBAction)print:(id)sender {
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//saving the file to documents directory
NSData * imageData = UIImagePNGRepresentation(viewImage);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"Screenshot.png"];
[imageData writeToFile:documentsDirectory atomically:YES];
NSString *myFilePath = [documentsDirectory stringByAppendingPathComponent:@"Screenshot.png"];
UIImage *screenShot = [UIImage imageWithData:imageData];
NSData *myData = [NSData dataWithData:UIImagePNGRepresentation(screenShot)];
self.pic = [UIPrintInteractionController sharedPrintController];
if (self.pic && [UIPrintInteractionController canPrintData:myData]) {
self.pic.delegate = self;
//filling up print info
UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = [myFilePath lastPathComponent];
printInfo.duplex = UIPrintInfoDuplexLongEdge;
self.pic.printInfo = printInfo;
self.pic.showsPageRange = YES;
self.pic.printingItem = myData;
void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *pic, BOOL completed, NSError *error) {
if (!completed && error)
NSLog(@"FAILED! due to error in domain %@ with error code %u",
error.domain, error.code);
};
[self.pic presentFromRect:self.printButton.frame inView:self.view animated:YES completionHandler: completionHandler]; // iPad
}
}
Der Dateipfad (screenshot.png) korrekt ist, und es ist richtig zu Dokumenten-Verzeichnis gespeichert.
Dies ist die Zeile, die diesen Fehler auslöst: [self.pic presentFromRect: self.printButton.frame inView: self.view animiert: YES completionHandler: completionHandler]; – JAHelia
Ich schätze ich falsch geraten! Die Drucksysteme von OS X und iOS basieren jedoch im Allgemeinen auf PDF. Vielleicht macht etwas anderes in der Druckpipeline eine ähnliche Art von Prüfung. –
also, würde dieser Fehler Probleme im Druckprozess verursachen? Ich kann den Druckvorgang nicht testen, weil ich keinen von AirPlay unterstützten Drucker habe. – JAHelia