beginx,开始画pdf时的x坐标,text要画的内容, heigh目前pdf的高度,fontsize字体大小,context联系上下文的对象
-(int)plaintextatwith:(int)beginx width:(int)width text:(NSString *)text height:(int)height fontsize:(int)fontsize context:(CGContextRef)context{
int linewidth=width;
int i=0,j=0;
const char *texts;
NSString *thisline;
for(;i<text.length;){
thisline=@"";
//剩余字符长度大于linewidth
if([[text substringFromIndex:j] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:fontsize]].width>linewidth){
while ([thisline sizeWithFont:[UIFont fontWithName:@"Helvetica" size:fontsize]].width<linewidth) {
i++;
thisline=[text substringWithRange:NSMakeRange(j, i-j)];
}
j=i;
if(j!=0){
height=height-fontsize-1;
}
NSString *linetext=[NSString stringWithFormat:@"%@",thisline];
NSRange range=[linetext rangeOfString:@"\n"];
while (range.length>0) {
NSString *linetext1=[NSString stringWithFormat:@"%@",[linetext substringToIndex:range.location]];
texts=(char *)[linetext1 UTF8String];
CGContextShowTextAtPoint(context, beginx, height, texts, strlen(texts));
height=height-fontsize-1;
linetext=[linetext substringFromIndex:range.location+range.length];
range=[linetext rangeOfString:@"\n"];
}
texts=(char *)[linetext UTF8String];
CGContextShowTextAtPoint(context,beginx,height, texts, strlen(texts));
if(height<70){
CGContextEndPage(context);
CGRect pageRect=CGRectMake(0, 0, 612, 792);
CGContextBeginPage(context,&pageRect );
height=792-50;
CGContextSelectFont(context, "Helvetica", fontsize, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, 0, 0, 0, 1);
}
//剩余字符小于linewidth时
}else{
thisline=[text substringFromIndex:j];
i=text.length;
if(j!=0){
height=height-fontsize-1;
}
NSString *linetext=[NSString stringWithFormat:@"%@",thisline];
NSRange range=[linetext rangeOfString:@"\n"];
while (range.length>0) {
NSString *linetext1=[NSString stringWithFormat:@"%@",[linetext substringToIndex:range.location]];
texts=(char *)[linetext1 UTF8String];
CGContextShowTextAtPoint(context, beginx, height, texts, strlen(texts));
height=height-fontsize-1;
linetext=[linetext substringFromIndex:range.location+range.length];
range=[linetext rangeOfString:@"\n"];
}
texts=(char *)[linetext UTF8String];
CGContextShowTextAtPoint(context,beginx,height, texts, strlen(texts));
if(height<70){
CGContextEndPage(context);
CGRect pageRect=CGRectMake(0, 0, 612, 792);
CGContextBeginPage(context,&pageRect );
height=792-50;
CGContextSelectFont(context, "Helvetica", fontsize, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, 0, 0, 0, 1);
}
}
}
return height;
}