我有一个RTF文件,我可以在iphone上查看,现在我需要以编程方式编辑文件,请让我知道我该怎么做。 例 RTF文件内容 “我是StackOverflow的新手” 现在我需要以编程方式更改为以下行。 “我经常访问StackOverflow”并保存为PDF文件。 请帮帮我:)
提前致谢:)
答案 0 :(得分:2)
在你的.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];
}