複数のページを持つ PDF ファイルを生成しようとしています。私はこのコードを使用しています:
-(void)createPDFfromUI:(UIWebView *)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData = [NSMutableData data];
// Points the pdf converter to the mutable data object and to the UIView to be converted
UIWebView *myView = [[UIWebView alloc] init];
[myView setBounds:CGRectMake(0,0, 320, 480)];
UIGraphicsBeginPDFContextToData(pdfData, myView.bounds, nil);
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
for (int i = 0; i < 4; i++) {
UIGraphicsBeginPDFPage();
aView.layer.bounds = CGRectMake(0,480* -i , 320, 480);
[aView.layer renderInContext:pdfContext];
}
[aView.layer renderInContext:pdfContext];
// remove PDF rendering context
UIGraphicsEndPDFContext();
// Retrieves the document directories from the iOS device
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];
// instructs the mutable data object to write its context to a file on disk
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
}
このコードの問題は、4 つの同様のページを含む PDF ファイルを生成するだけで、それらはすべて元のページの最後の 480 ピクセルであることです。(aView) `[aView.layer renderInContext:pdfContext]; を移動するときも。FOR ループの行から 4 ページの PDF ファイルが生成されますが、最初の 3 ページは空白になり、最後のページにはデータが含まれます。
どうすればこの問題を解決できますか?