ios pdf自动换行方法(解决中文乱码问题)

嗯,这个是左上角为0,0点,和上次写的那个不支持中文得不一样,那个事左下角为0,0点

-(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:@"Times New Roman" size:fontsize]].width>linewidth){

        while ([thisline sizeWithFont:[UIFont fontWithName:@"Times New Roman" size:fontsize]].width<linewidth) {

            i++;

            thisline=[text substringWithRange:NSMakeRange(j, i-j)];

        }

            if(j!=0){

            height=height+fontsize+3;

            }

            j=i;

           NSString *linetext=[NSString stringWithFormat:@"%@",thisline];

           NSRange range=[linetext rangeOfString:@"\n"];

           while (range.length>0) {

               NSString *linetext1=[NSString stringWithFormat:@"%@",[linetext substringToIndex:range.location]];

               [linetext1 drawAtPoint:CGPointMake(beginx, height) withFont:[UIFont   systemFontOfSize:fontsize]];

               height=height+fontsize+3;

               linetext=[linetext substringFromIndex:range.location+range.length];

               range=[linetext rangeOfString:@"\n"];

           }

            [linetext drawAtPoint:CGPointMake(beginx, height) withFont:[UIFont   systemFontOfSize:fontsize]];

            //换页方法

            if(height>700){

                UIGraphicsBeginPDFPage();

                height=50;

                CGContextSelectFont(context, "Arial", 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+3;

            }

            NSString *linetext=[NSString stringWithFormat:@"%@",thisline];

            NSRange range=[linetext rangeOfString:@"\n"];

            while (range.length>0) {

                NSString *linetext1=[NSString stringWithFormat:@"%@",[linetext substringToIndex:range.location]];

                [linetext1 drawAtPoint:CGPointMake(beginx, height) withFont:[UIFont   systemFontOfSize:fontsize]];

                height=height+fontsize+3;

                linetext=[linetext substringFromIndex:range.location+range.length];

                range=[linetext rangeOfString:@"\n"];

            }

            [linetext drawAtPoint:CGPointMake(beginx, height) withFont:[UIFont   systemFontOfSize:fontsize]];

            if(height>700){

                UIGraphicsBeginPDFPage();

                height=50;

                CGContextSelectFont(context, "Arial", fontsize, kCGEncodingMacRoman);

                CGContextSetTextDrawingMode(context, kCGTextFill);

                CGContextSetRGBFillColor(context, 0, 0, 0, 1);

            }

        }

    }     


    return height; 

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值