PDFページのコンテンツを置き換えたいと思っていました。私は次のコードでそれを行いました、
-(void)modifyPdf:(NSString *)pdfPath atPage:(int)_page
{
NSURL* url = [NSURL fileURLWithPath:pdfPath];
CGPDFDocumentRef document = CGPDFDocumentCreateWithURL ((CFURLRef) url);
CGRect paperSize = CGPDFPageGetBoxRect(CGPDFDocumentGetPage (document, 1), kCGPDFMediaBox);
UIGraphicsBeginPDFContextToFile(pdfPath, paperSize, nil);
UIGraphicsBeginPDFPageWithInfo(paperSize, nil);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(currentContext, 0, paperSize.size.height);
CGContextScaleCTM(currentContext, 1.0, -1.0);
CGPDFPageRef page = CGPDFDocumentGetPage (document, _page);
CGContextDrawPDFPage (currentContext, page);
CGContextDrawImage(currentContext, CGRectMake(0, 0, 100, 100), [UIImage imageNamed:@"0_0_0.png"].CGImage);
UIGraphicsEndPDFContext();
CGPDFDocumentRelease(document);
document = nil;
}
(指定されたページに画像を追加します。パスまたはテキストを描画する必要がある場合があります)。
ここで直面した問題は、変更されたファイルには変更されたページしかありません。それを避けるために、私はすべてのページを描きました。しかし、予想通り、大きなファイルの場合、パフォーマンスは非常にひどいものです。特定のページだけを変更する方法はありますか? それを行うための他の良い方法はありますか?助けてください。