2

HTMLファイルを使用してPDFファイルをDocumentDirectoryに生成しています。以下のメソッドが呼び出されているときに、(html ファイルで同じ名前の新しい画像を使用して) HTML ファイルを更新する必要があるたびに。

今、私はこのようにやっていますが、初めて(このメソッドを呼び出すときはいつでも)リフレッシュしています

-(void)RefreshingHTML
{
// fetching path
NSArray* deletepath_forDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString* deletedocumentsDirectoryfiles = [deletepath_forDirectory objectAtIndex:0];`

// Delete HTML file in DocumentDirectory
NSString *deleteHTMLPath = [deletedocumentsDirectoryfiles stringByAppendingPathComponent:@"HTML_Demo.html"];
NSString *deletePDFPath = [deletedocumentsDirectoryfiles stringByAppendingPathComponent:@"HTML_Demo.pdf"];
NSLog(@"delete HTML file Path : %@",deleteHTMLPath);
if([[NSFileManager defaultManager] fileExistsAtPath:deleteHTMLPath]) {

    [[NSFileManager defaultManager] removeItemAtPath:deleteHTMLPath error:NULL];
    [[NSFileManager defaultManager] removeItemAtPath:deletePDFPath error:NULL];
}
// fetching HTML file from supporting files
NSString *path = [[NSBundle mainBundle] pathForResource:@"HTML_Demo" ofType:@"html"];
NSURL *pathURL = [NSURL fileURLWithPath:path];
NSArray* path_forDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString* documentsDirectory = [path_forDirectory objectAtIndex:0];

// saving HTML file to DocumentDirectory
NSData* data = [NSData dataWithContentsOfURL:pathURL];
[data writeToFile:[NSString stringWithFormat:@"%@/HTML_Demo.html",documentsDirectory] atomically:YES];

// Fetching HTML file from DocumentDirectory
NSString *HTMLPath = [documentsDirectory stringByAppendingPathComponent:@"HTML_Demo.html"];
NSLog(@"delete HTML file Path: %@",HTMLPath);
if([[NSFileManager defaultManager] fileExistsAtPath:HTMLPath]) {

    NSURL *targetURL = [NSURL fileURLWithPath:HTMLPath];

    // Converting HTML to PDF
    self.PDFCreator = [NDHTMLtoPDF createPDFWithURL:targetURL
                                     pathForPDF:[@"~/Documents/HTML_Demo.pdf" stringByExpandingTildeInPath]
                                       delegate:self
                                       pageSize:kPaperSizeA4
                                        margins:UIEdgeInsetsMake(20, 5, 90, 5)];
}


}
4

1 に答える 1

1

URL がキャッシュから読み込まれている可能性があります。NDHTMLtoPDF.m で、viewDidLoad を調べます。

代わりに: [webview loadRequest:[NSURLRequest requestWithURL:self.URL]];

cachePolicy を設定できるコンストラクターを使用してみてください。

NSURLRequest requestWithURL:<#(NSURL *)#> cachePolicy:<#(NSURLRequestCachePolicy)#> timeoutInterval:<#(NSTimeInterval)#>

このポリシーは、ニーズにより適している場合があります: NSURLRequestReloadIgnoringCacheData

または、URL のクエリ文字列に何かを追加して、キャッシュに見つからないようにすることもできます (インデックスやタイムスタンプなど)。

于 2013-03-26T20:09:46.040 に答える