3

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;   
}

(指定されたページに画像を追加します。パスまたはテキストを描画する必要がある場合があります)。

ここで直面した問題は、変更されたファイルには変更されたページしかありません。それを避けるために、私はすべてのページを描きました。しかし、予想通り、大きなファイルの場合、パフォーマンスは非常にひどいものです。特定のページだけを変更する方法はありますか? それを行うための他の良い方法はありますか?助けてください。

4

0 に答える 0