5

私はこれで本当に問題を抱えています。何が悪いのかわかりませんが、これを吐き出します:

エラー:印刷ソース(item / items / formatter / renderer)が設定されていない状態で印刷オプションを表示しようとしています

png画像を印刷するように設定した場合、コードは機能しますが、NSStringのコンテンツは機能しません。

これが私のコードです:

- (IBAction)pushPrint:(id)sender {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterNoStyle];
    [dateFormatter setTimeStyle:NSDateFormatterLongStyle];
    [dateFormatter setDateFormat:@"dd/MM/YY     HH:mm:ss"];
    NSString* currentTime = [dateFormatter stringFromDate:[NSDate date]];
    [dateFormatter release]; 

    UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];

    NSString *path = [[NSBundle mainBundle] pathForResource:t[NSString stringWithFormat:@"Results Printout\n"
                                                              "\n"
                                                              "%@\n"
                                                              "\n"
                                                              "\n"
                                                              "%@", currentTime, pasteboard.string] ofType:nil];

    NSData *myData = [NSData dataWithContentsOfFile:path];
    UIPrintInteractionController *print = [UIPrintInteractionController sharedPrintController];

    print.delegate = self;
    UIPrintInfo *printInfo = [UIPrintInfo printInfo];
    printInfo.outputType = UIPrintInfoOutputGeneral;
    printInfo.jobName = [path lastPathComponent];
    printInfo.duplex = UIPrintInfoDuplexLongEdge;
    print.printInfo = printInfo;
    print.showsPageRange = YES;
    print.printingItem = myData;

    void (^completionHandler)(UIPrintInteractionController *,BOOL, NSError *) = ^(UIPrintInteractionController *print,BOOL completed, NSError *error) {
        if (!completed && error) {
            NSLog(@"houston we have a problem");
        }
    };
    [print presentAnimated:YES completionHandler:completionHandler];
}
4

1 に答える 1

8

プレーンを印刷したいようですNSStringが、有効ではないファイルパスでファイルをロードしようとしています。したがって、myData可能性が非常に高くnil(デバッガーで確認してください)、エラーメッセージは正しいです(正しくprint.printingItemない必要がありますnil)。

単純なテキストを印刷するには、UISimpleTextPrintFormatter(を使用してinitWithText:)のインスタンスを作成し、そのインスタンスをに割り当てますprint.printFormatter

于 2011-02-21T17:59:59.193 に答える