iPhone で表示できる RTF ファイルがあります。プログラムでファイルを編集する必要があります。どうすればよいか教えてください。RTF ファイルの内容の例 「StackOverflow は初めてです」 次に、プログラムで以下の行に変更する必要があります。「私は定期的に StackOverflow にアクセスしています」と PDF ファイルとして保存します。私を助けてください:)
前もって感謝します :)
.h ファイルにいくつかのオブジェクトを追加して定義します
#define kBorderInset 20.0
#define kBorderWidth 1.0
#define kMarginInset 10.0
@interface ViewController : UIViewController
{
CGSize pageSize;
NSString *pdfFileName;
NSString *contents_for_pdf;
}
- (void)generatePdfWithFilePath:(NSString *)thefilePath;
.m ファイルで、この行をボタンのどこかに追加して、文字列で rtf ファイルの内容を取得します。
NSString *rtf_path = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"rtf"];
contents_for_pdf = [[NSString alloc] initWithContentsOfFile:rtf_path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",contents_for_pdf);
contents_for_pdf = [contents_for_pdf stringByReplacingOccurrencesOfString:@"I am new to StackOverflow" withString:@"I regularly visit StackOverflow"];
pageSize = CGSizeMake(612, 792);
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
[self generatePdfWithFilePath:pdfFileName];
私はrtfファイルのテキストを変更しませんでした.rtfファイルで同じテキストを使用しただけです.必要に応じて行う必要があります(テキストにいくつかのエンコード文字があることに気付きました).pdfを生成する関数はこちらです.
- (void) generatePdfWithFilePath: (NSString *)thefilePath
{
UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, nil);
//Start a new page.
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);
//Draw text fo our header.
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(currentContext, 0.0, 0.0, 0.0, 1.0);
UIFont *font = [UIFont systemFontOfSize:14.0];
CGSize stringSize = [contents_for_pdf sizeWithFont:font
constrainedToSize:CGSizeMake(pageSize.width - 2*kBorderInset-2*kMarginInset, pageSize.height - 2*kBorderInset - 2*kMarginInset)
lineBreakMode:UILineBreakModeWordWrap];
CGRect renderingRect = CGRectMake(kBorderInset + kMarginInset, kBorderInset + kMarginInset + 50.0, pageSize.width - 2*kBorderInset - 2*kMarginInset, stringSize.height);
[contents_for_pdf drawInRect:renderingRect
withFont:font
lineBreakMode:UILineBreakModeWordWrap
alignment:UITextAlignmentLeft];
UIGraphicsEndPDFContext();
UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:@"PDF Created" message:@"Sucessfull" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
[Alert show];
}