2

印刷後にファイルを削除しようとしていますが、成功しません。

実際には、一時的に生成された(テキストと画像を含む)PDFを印刷する必要があり、印刷プロセスが完了したら、それを削除したいと思います。

現在、PDF は Documents ディレクトリに保存されています。Tempフォルダに保存してもよろしいでしょうか?しかし、とにかくそれを削除する必要があります。ユーザーが保存した PDF を表示する tableView もあるので、一時的に生成されたものではなく、それらのみを表示する必要があります。

UIPrinterInteractionController のデリゲート メソッドを試してみましたが、うまくいきませんでした。

-(void)printInteractionControllerDidDismissPrinterOptions:(UIPrintInteractionController *)printInteractionController{
    NSError *error;
    NSFileManager *fileMgr = [NSFileManager defaultManager];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory
                          stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",PDFNameString]];
    if ([fileMgr removeItemAtPath:filePath error:&error] != YES)
    {   UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:NSLocalizedString(@"UnableToDeleteFile", @"Unable to delete file: %@"),[error localizedDescription]] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] autorelease];
        [alert show];
    }

    NSLog(@"Dismissed");
}

警告ビューは、印刷オプション ビューが「プリンタに送信中..」ビューに置き換わったときにポップアップ表示されます。ファイルを削除することすらありません、とそれは言います

ココア エラー コード 4。

印刷プロセスが完了したときにファイルを削除するために使用できる方法を知っている人はいますか?

編集

ファイルが存在する場合は NSLog しましたが、存在しません。これはどのように可能ですか?

4

1 に答える 1

4

代わりに (void)printInteractionControllerDidFinishJob:(UIPrintInteractionController *)printInteractionController を試してください。

http://developer.apple.com/library/ios/ipad/#documentation/uikit/reference/UIPrintInteractionControllerDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UIPrintInteractionControllerDelegate

于 2013-02-03T11:14:19.493 に答える