複数ページの PDF ファイルに署名しようとしています。UIView で描画された署名を PDF ファイルにフェッチできましたが、直面している問題は、PDF に署名した後、署名されたファイルの 1 ページしか表示できなかったことです。 webview の残りのページではありません (たとえば、pdf ファイルのページ 3 が署名されている場合、webview でページ 3 のみを表示できます)。
私のPDFファイルで電子サインを取得するために使用されるコード
- (void)viewWillAppear:(BOOL)animated
{
webView= [[UIWebView alloc] initWithFrame:CGRectMake(0,44, 320, 460)];
path1 = [[NSBundle mainBundle] pathForResource:@"typo_tips" ofType:@"pdf"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentDirectoryPath;
NSURL *targetURL;
documentDirectoryPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"typo_tips.pdf"];
[fileManager copyItemAtPath:path1 toPath:documentDirectoryPath error:&error];
targetURL = [NSURL fileURLWithPath:documentDirectoryPath];
if (entered==1)//entered assigned 1, after save button clicked in UIView
{
CFURLRef url;
url = (CFURLRef)CFBridgingRetain([NSURL fileURLWithPath:documentDirectoryPath]);
CGPDFDocumentRef myDocument;
myDocument = CGPDFDocumentCreateWithURL(url);
CGContextRef pdfContext = CGPDFContextCreateWithURL(url, NULL, NULL);
CGPDFContextBeginPage(pdfContext, NULL);
UIGraphicsPushContext(pdfContext);
int totalPages = (int)CGPDFDocumentGetNumberOfPages(myDocument);
NSLog(@"no. of pages in pdf is %d \n",totalPages);
CGContextDrawPDFPage(UIGraphicsGetCurrentContext(),CGPDFDocumentGetPage(myDocument,page));
//"page" is current pdf page to be signed, which can be fetched from user during runtime the pdf file is clicked.
NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image.png"];// image is the e-sign saved in doc. directory
image = [[UIImage alloc] initWithContentsOfFile:filePath];
CGRect imageRect = CGRectMake(50, 50, image.size.width, image.size.height);
// CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, image.size.height);
// CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
CGContextDrawImage(UIGraphicsGetCurrentContext(), imageRect, image.CGImage);
// Clean up
UIGraphicsPopContext();
CGPDFContextEndPage(pdfContext);
CGPDFContextClose(pdfContext);
}
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];
[self.view addSubview:webView];
}
画像がpdfファイルとマージされた後、署名されたpdfの単一ページがドキュメントディレクトリに残り、pdfファイルの残りのページを表示できなかったため、問題の原因を推測できました。この問題から回復するのを手伝ってくれる人はいますか。