2

新しい PDF ファイルを作成するのではなく、既存の PDF ファイルを上書きしたい。PDFファイル全体を描画したくはありませんが、PDFファイルに100ページある場合は1ページだけを描画します。

実際には、PDF ファイルのページにいくつかの画像を配置したいと考えています。ユーザーが保存ボタンをタップすると上書きされます。可能ではないですか?フレームワークや SDK はありますか?

返信ありがとうございます。

4

3 に答える 3

3

iPhone での PDF 操作がサポートされています。Apple のドキュメントは次のとおりですhttp://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html

-(void)createPDFFileFromSelectedPageNumber:(int)selectedPageNumber:(NSString*)fileName{
NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [arrayPaths objectAtIndex:0];

NSString *outpath = [[NSString alloc]initWithFormat:@"%@/output.pdf",path];

UIGraphicsBeginPDFContextToFile(outpath, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);

NSURL *url = [[NSURL alloc] initFileURLWithPath:fileName];

CGPDFDocumentRef originalPDF = CGPDFDocumentCreateWithURL((__bridge CFURLRef)url);

CGPDFPageRef pdfPage = CGPDFDocumentGetPage(originalPDF, selectedPageNumber);

CGSize size = CGSizeMake(612.0, 792.0);
CGRect outRect = CGRectMake(0, 0, 612.0, 792.0);


UIGraphicsBeginImageContext(size);

CGContextRef context = UIGraphicsGetCurrentContext();

CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(pdfPage, kCGPDFMediaBox, outRect, 0, true);
CGContextConcatCTM(context, pdfTransform);

CGContextDrawPDFPage(context, pdfPage);

UIImage *output = UIGraphicsGetImageFromCurrentImageContext();


CGContextSaveGState (context);

UIGraphicsEndImageContext();

[output drawInRect:outRect];

UIGraphicsEndPDFContext();}

ソース PDF ファイルの filePath と pageNumber を関数に渡すと、単一ページの新しい PDF が得られます。要件に応じて、さらに拡張することができます。少なくともこれが役立つことを願っています。

于 2012-08-22T10:16:49.963 に答える
2

これまで、iOS は PDF ファイル全体を編集する方法を提供していませんでした。この号のように、彼もページの 1 つを変更したいと思いました。

サードパーティのライブラリの方が優れています。

于 2012-08-25T08:25:19.133 に答える
1

非常に似ています:iOSでPDFファイルをマージする

PDF ファイルを再度開いて編集を続けることはできません。PDF全体を再度読み込んで再描画するだけです。

于 2012-08-27T06:54:20.727 に答える