|
|
@@ -33,10 +33,10 @@
|
|
|
+(NSMutableDictionary *) createTextTemplate:(CGRect) rect source_type:(NSString*) source_type source:(NSString*)source textAlignment:(NSString*)textAlignment vAlign:(NSString*)vAlign size:(NSString*)size
|
|
|
{
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
+ NSLog(@"createTextTemplate text align : %@",textAlignment);
|
|
|
|
|
|
if(textAlignment.length==0)
|
|
|
textAlignment= @"Center";
|
|
|
@@ -44,7 +44,7 @@
|
|
|
vAlign= @"Middle";
|
|
|
if(size.length==0)
|
|
|
vAlign= @"10";
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
NSMutableDictionary* ret=[super createDrawableTemplate:rect];
|
|
|
@@ -69,6 +69,8 @@
|
|
|
|
|
|
|
|
|
NSString* align= drawableTemplate[@"textAlignment"];
|
|
|
+
|
|
|
+ NSLog(@"setDrawableTemplate text align : %@",align);
|
|
|
if(align.length==0 || [align.lowercaseString isEqualToString:@"left"])
|
|
|
{
|
|
|
self.textalignment= kCTTextAlignmentLeft;
|
|
|
@@ -86,8 +88,8 @@
|
|
|
self.textalignment= kCTTextAlignmentLeft;
|
|
|
}
|
|
|
|
|
|
-// self.lineSpace = 0;
|
|
|
-// self.paragraphSpace = 0;
|
|
|
+ self.lineSpace = 0;
|
|
|
+ self.paragraphSpace = 0;
|
|
|
|
|
|
|
|
|
NSString* colorvalue=drawableTemplate[@"color"];
|
|
|
@@ -119,12 +121,12 @@
|
|
|
-(CGRect) Query_Rect:(CGContextRef) context dataSource:(NSMutableDictionary*)data ParentRect:(CGRect)p_rect startX:(double) x startY:(double) y flipHeight:(double)flip_height range:(NSRange)between_header_and_footer
|
|
|
{
|
|
|
|
|
|
- bool expand=[self.drawableTemplate[@"expand"] boolValue];
|
|
|
+ bool expand=[self.drawableTemplate[@"expand"] boolValue];
|
|
|
if(!expand)
|
|
|
{
|
|
|
- CGRect parentrect = [self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
-
|
|
|
- return parentrect;
|
|
|
+ CGRect parentrect = [self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
+
|
|
|
+ return parentrect;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -185,10 +187,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
-// if([self.text isEqualToString:@"www.newpacificdirect.com"])
|
|
|
-// {
|
|
|
-// int debug=0;
|
|
|
-// }
|
|
|
+ // if([self.text isEqualToString:@"www.newpacificdirect.com"])
|
|
|
+ // {
|
|
|
+ // int debug=0;
|
|
|
+ // }
|
|
|
|
|
|
|
|
|
bool bold = [self.drawableTemplate[@"bold"] boolValue];
|
|
|
@@ -313,7 +315,7 @@
|
|
|
|
|
|
CGRect parentrect = [self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
|
|
|
-
|
|
|
+
|
|
|
double height =0;
|
|
|
if(tmpSize.height<parentrect.size.height)
|
|
|
height=tmpSize.height;
|
|
|
@@ -352,19 +354,19 @@
|
|
|
// // CGContextClearRect(context, self.rect);
|
|
|
// // CGContextSetFillColorWithColor(context, [[UIColor whiteColor]CGColor]);
|
|
|
// // CGContextFillRect(context, CGRectMake(0, 0, self.rect.size.width, self.rect.size.height));
|
|
|
- //
|
|
|
- //
|
|
|
+ //
|
|
|
+ //
|
|
|
// CGContextSetTextMatrix(context, CGAffineTransformIdentity);
|
|
|
// // CGContextTranslateCTM(context, 0, self.rect.size.height);
|
|
|
// // CGContextScaleCTM(context, 1.0, -1.0);
|
|
|
- //
|
|
|
+ //
|
|
|
// // draw
|
|
|
// CTFrameDraw(leftFrame, context);
|
|
|
- //
|
|
|
- //
|
|
|
+ //
|
|
|
+ //
|
|
|
// CFRelease(leftFrame);
|
|
|
// // cleanup
|
|
|
- //
|
|
|
+ //
|
|
|
// CGPathRelease(leftColumnPath);
|
|
|
CFRelease(framesetter);
|
|
|
|
|
|
@@ -412,7 +414,7 @@
|
|
|
CTFontDescriptorRef descriptor =
|
|
|
CTFontDescriptorCreateWithAttributes(cffontAttributes);
|
|
|
|
|
|
- // CFBridgingRelease(cffontAttributes);
|
|
|
+ // CFBridgingRelease(cffontAttributes);
|
|
|
|
|
|
// Create a font using the descriptor.
|
|
|
CTFontRef font = CTFontCreateWithFontDescriptor(descriptor, 0.0, NULL);
|
|
|
@@ -591,10 +593,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
-// if([self.text isEqualToString:@"www.newpacificdirect.com"])
|
|
|
-// {
|
|
|
-// int debug=0;
|
|
|
-// }
|
|
|
+ // if([self.text isEqualToString:@"www.newpacificdirect.com"])
|
|
|
+ // {
|
|
|
+ // int debug=0;
|
|
|
+ // }
|
|
|
|
|
|
|
|
|
bool bold = [self.drawableTemplate[@"bold"] boolValue];
|
|
|
@@ -615,7 +617,7 @@
|
|
|
//
|
|
|
// }
|
|
|
// else
|
|
|
-
|
|
|
+ {
|
|
|
string=[[NSMutableAttributedString alloc] initWithString:self.text];
|
|
|
//创建字体以及字体大小
|
|
|
// CTFontRef ctfont = [self CreateFont:font size:fontsize bold:bold];//CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
@@ -690,7 +692,7 @@
|
|
|
value:CFBridgingRelease(paragraphStyle)
|
|
|
range:NSMakeRange(0, [string length])];
|
|
|
|
|
|
-
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
|
|
@@ -788,3 +790,796 @@
|
|
|
|
|
|
|
|
|
@end
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+////
|
|
|
+//// TextDrawable.m
|
|
|
+//// pdftest
|
|
|
+////
|
|
|
+//// Created by Ray on 10/12/16.
|
|
|
+//// Copyright © 2016 United Software Applications, Inc. All rights reserved.
|
|
|
+////
|
|
|
+//
|
|
|
+//#import "TextDrawable.h"
|
|
|
+//#import <CoreText/CoreText.h>
|
|
|
+//#import "TextUtils.h"
|
|
|
+//
|
|
|
+//@implementation TextDrawable
|
|
|
+//
|
|
|
+//
|
|
|
+//-(instancetype) init:(CGRect) rect source_type:(NSString*) source_type source:(NSString*)source textAlignment:(NSString*)textAlignment vAlign:(NSString*)vAlign size:(NSString*)size
|
|
|
+//{
|
|
|
+//
|
|
|
+// if (self = [super init]) {
|
|
|
+// // NSMutableDictionary* m1=[drawableTemplate mutableCopy];
|
|
|
+// // NSMutableDictionary* m2=[drawableTemplate mutableCopy];
|
|
|
+// // [self setDrawableTemplate:[[RAUtils string2dict:[RAUtils dict2string:drawableTemplate]] mutableCopy] ];
|
|
|
+//
|
|
|
+// NSMutableDictionary * drawableTemplate = [TextDrawable createTextTemplate:rect source_type:source_type source:source textAlignment:textAlignment vAlign:vAlign size:size];
|
|
|
+//
|
|
|
+//
|
|
|
+// [self setDrawableTemplate:[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:drawableTemplate]] ];
|
|
|
+//
|
|
|
+// }
|
|
|
+// return self;
|
|
|
+//
|
|
|
+//}
|
|
|
+//+(NSMutableDictionary *) createTextTemplate:(CGRect) rect source_type:(NSString*) source_type source:(NSString*)source textAlignment:(NSString*)textAlignment vAlign:(NSString*)vAlign size:(NSString*)size
|
|
|
+//{
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// if(textAlignment.length==0)
|
|
|
+// textAlignment= @"Center";
|
|
|
+// if(vAlign.length==0)
|
|
|
+// vAlign= @"Middle";
|
|
|
+// if(size.length==0)
|
|
|
+// vAlign= @"10";
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// NSMutableDictionary* ret=[super createDrawableTemplate:rect];
|
|
|
+//
|
|
|
+// ret[@"type"]=@"text" ;
|
|
|
+// ret[@"source_type"]=source_type ;
|
|
|
+// ret[@"source"]=source ;
|
|
|
+// ret[@"text"]=source ;
|
|
|
+// ret[@"textAlignment"]=textAlignment ;
|
|
|
+// ret[@"vAlign"]=vAlign ;
|
|
|
+// ret[@"size"]=size ;
|
|
|
+//
|
|
|
+// return ret;
|
|
|
+//}
|
|
|
+//
|
|
|
+//
|
|
|
+//-(void) setDrawableTemplate:(NSMutableDictionary *)drawableTemplate
|
|
|
+//{
|
|
|
+//
|
|
|
+// [super setDrawableTemplate:drawableTemplate];
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// NSString* align= drawableTemplate[@"textAlignment"];
|
|
|
+// if(align.length==0 || [align.lowercaseString isEqualToString:@"left"])
|
|
|
+// {
|
|
|
+// self.textalignment= kCTTextAlignmentLeft;
|
|
|
+// }
|
|
|
+// else if([align.lowercaseString isEqualToString:@"right"])
|
|
|
+// {
|
|
|
+// self.textalignment= kCTTextAlignmentRight;
|
|
|
+// }
|
|
|
+// else if([align.lowercaseString isEqualToString:@"center"])
|
|
|
+// {
|
|
|
+// self.textalignment= kCTTextAlignmentCenter;
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// self.textalignment= kCTTextAlignmentLeft;
|
|
|
+// }
|
|
|
+//
|
|
|
+//// self.lineSpace = 0;
|
|
|
+//// self.paragraphSpace = 0;
|
|
|
+//
|
|
|
+//
|
|
|
+// NSString* colorvalue=drawableTemplate[@"color"];
|
|
|
+// if(colorvalue.length>0 )
|
|
|
+// {
|
|
|
+// unsigned long color = strtoul([colorvalue UTF8String],0,16);
|
|
|
+// self.textColor= UIColorFromRGB(color);
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// self.textColor= [UIColor blackColor];
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// // kCTTextAlignmentJustified CT_ENUM_AVAILABLE(10_8, 6_0) = 3,
|
|
|
+// // kCTTextAlignmentNatural CT_ENUM_AVAILABLE(10_8, 6_0) = 4,
|
|
|
+//
|
|
|
+//
|
|
|
+// // _drawableTemplate = drawableTemplate;
|
|
|
+// // self.margin_left=[self.drawableTemplate[@"margin_left"] doubleValue];
|
|
|
+// // self.margin_right=[self.drawableTemplate[@"margin_right"] doubleValue];
|
|
|
+// // self.margin_top=[self.drawableTemplate[@"margin_top"] doubleValue];
|
|
|
+// // self.margin_bottom=[self.drawableTemplate[@"margin_bottom"] doubleValue];
|
|
|
+// // self.rect = CGRectMake(0, 0, [self.drawableTemplate[@"width"] doubleValue], [self.drawableTemplate[@"height"] doubleValue]);
|
|
|
+//}
|
|
|
+//
|
|
|
+//
|
|
|
+//-(CGRect) Query_Rect:(CGContextRef) context dataSource:(NSMutableDictionary*)data ParentRect:(CGRect)p_rect startX:(double) x startY:(double) y flipHeight:(double)flip_height range:(NSRange)between_header_and_footer
|
|
|
+//{
|
|
|
+//
|
|
|
+// bool expand=[self.drawableTemplate[@"expand"] boolValue];
|
|
|
+// if(!expand)
|
|
|
+// {
|
|
|
+// CGRect parentrect = [self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
+//
|
|
|
+// return parentrect;
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// NSString * source=self.drawableTemplate[@"source_type"];
|
|
|
+// if(source==nil)
|
|
|
+// source=@"const";
|
|
|
+// if([source isEqualToString:@"const"])
|
|
|
+// {
|
|
|
+// self.text=self.drawableTemplate[@"text"];
|
|
|
+// // self.text=[self.text stringByReplacingOccurrencesOfString:@"\r\n" withString:@"<br>"];
|
|
|
+//
|
|
|
+// }
|
|
|
+// else if([source isEqualToString:@"data"])
|
|
|
+// {
|
|
|
+// if([self.drawableTemplate[@"source_isexpression"] boolValue])
|
|
|
+// {
|
|
|
+// NSString *content = data[self.drawableTemplate[@"source"]];
|
|
|
+// NSString *pattern = @"\\$\\.\\{([\\s\\S]*?)\\}\\.\\$";
|
|
|
+// NSArray* matches=[TextUtils expression_varable:content regex:pattern];
|
|
|
+// // if (matches) {
|
|
|
+// // for (NSTextCheckingResult *match in matches) {
|
|
|
+// // for (int i = 0; i < match.numberOfRanges; ++i) {
|
|
|
+// // DebugLog(@"%d-> %@",i, [content substringWithRange:[match rangeAtIndex:i]]);
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// if (matches)
|
|
|
+// {
|
|
|
+// self.text=content;
|
|
|
+// for (NSTextCheckingResult *match in matches)
|
|
|
+// {
|
|
|
+//
|
|
|
+// for (int i = 0; i < match.numberOfRanges/2; ++i) {
|
|
|
+// DebugLog(@"%d-> %@",i, [content substringWithRange:[match rangeAtIndex:i]]);
|
|
|
+// DebugLog(@"%d-> %@",i+1, [content substringWithRange:[match rangeAtIndex:i+1]]);
|
|
|
+//
|
|
|
+// self.text=[self.text stringByReplacingOccurrencesOfString:[content substringWithRange:[match rangeAtIndex:i]] withString:[NSString stringWithFormat:@"%@",data[[content substringWithRange:[match rangeAtIndex:i+1]]]]];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //self.text=content;
|
|
|
+//
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// self.text=data[self.drawableTemplate[@"source"]];
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if(self.text==nil)
|
|
|
+// self.text=@"";
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//// if([self.text isEqualToString:@"www.newpacificdirect.com"])
|
|
|
+//// {
|
|
|
+//// int debug=0;
|
|
|
+//// }
|
|
|
+//
|
|
|
+//
|
|
|
+// bool bold = [self.drawableTemplate[@"bold"] boolValue];
|
|
|
+// bool italic = [self.drawableTemplate[@"italic"] boolValue];
|
|
|
+// NSString* font=self.drawableTemplate[@"font"];
|
|
|
+//
|
|
|
+// // [super flipContext:context ContextHeight:flip_height];
|
|
|
+// // super flipContext:context ContextHeight:<#(double)#>
|
|
|
+// CGFloat fontsize = [self.drawableTemplate[@"size"] doubleValue];
|
|
|
+//
|
|
|
+// //NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[title dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
|
|
|
+// //创建AttributeStringfdsa
|
|
|
+//
|
|
|
+// NSMutableAttributedString *string = nil;
|
|
|
+// // if([self.drawableTemplate[@"ishtml"] boolValue])
|
|
|
+// // {
|
|
|
+// // string=[[[NSAttributedString alloc] initWithData:[self.text dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil] mutableCopy];
|
|
|
+// //
|
|
|
+// // }
|
|
|
+// // else
|
|
|
+// {
|
|
|
+// string=[[NSMutableAttributedString alloc] initWithString:self.text];
|
|
|
+// //创建字体以及字体大小
|
|
|
+// // CTFontRef ctfont = [self CreateFont:font size:fontsize bold:bold];//CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
+// // // CTFontRef helveticaBold = CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
+// // //字体,把helvetica 样式加到整个,string上
|
|
|
+// // [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// // value:CFBridgingRelease(ctfont)
|
|
|
+// // range:NSMakeRange(0, [string length])];
|
|
|
+// //
|
|
|
+// // //字体样式 ,把helveticaBold 样式加到整个,string上
|
|
|
+// // // [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// // // value:CFBridgingRelease(helveticaBold)
|
|
|
+// // // range:NSMakeRange(0, [string length])];
|
|
|
+// //
|
|
|
+// // //颜色,此处为黑色,你可以自己改颜色,[UIColor redColor]
|
|
|
+// // [string addAttribute:(id)kCTForegroundColorAttributeName
|
|
|
+// // value:(id)self.textColor.CGColor
|
|
|
+// // range:NSMakeRange(0, [string length])];
|
|
|
+//
|
|
|
+// string = [self richtext2attributedstring:string font:font size:fontsize bold:bold];
|
|
|
+//
|
|
|
+//
|
|
|
+// //设置字体间距
|
|
|
+// long number = self.characterSpace;
|
|
|
+// CFNumberRef num = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt8Type, &number);
|
|
|
+// [string addAttribute:(id)kCTKernAttributeName value:CFBridgingRelease(num) range:NSMakeRange(0, [string length])];
|
|
|
+// //CFRelease(num);
|
|
|
+//
|
|
|
+//
|
|
|
+// //创建文本对齐方式
|
|
|
+// CTTextAlignment alignment = self.textalignment;//对齐方
|
|
|
+// CTParagraphStyleSetting alignmentStyle;
|
|
|
+// alignmentStyle.spec=kCTParagraphStyleSpecifierAlignment;
|
|
|
+// alignmentStyle.valueSize=sizeof(alignment);
|
|
|
+// alignmentStyle.value=&alignment;
|
|
|
+//
|
|
|
+// //创建文本, 行间距
|
|
|
+// CGFloat lineSpace=self.lineSpace;//间距数据
|
|
|
+// CTParagraphStyleSetting lineSpaceStyle;
|
|
|
+// lineSpaceStyle.spec=kCTParagraphStyleSpecifierLineSpacing;
|
|
|
+// lineSpaceStyle.valueSize=sizeof(lineSpace);
|
|
|
+// lineSpaceStyle.value=&lineSpace;
|
|
|
+//
|
|
|
+// //设置 line break;
|
|
|
+// CTLineBreakMode linebreakmode = kCTLineBreakByTruncatingTail;
|
|
|
+// CTParagraphStyleSetting linebreakStyle;
|
|
|
+// linebreakStyle.spec = kCTParagraphStyleSpecifierLineBreakMode;
|
|
|
+// linebreakStyle.valueSize = sizeof(CGFloat);
|
|
|
+// linebreakStyle.value = &linebreakmode;
|
|
|
+//
|
|
|
+//
|
|
|
+// //设置 段落间距
|
|
|
+// CGFloat paragraph = self.paragraphSpace;
|
|
|
+// CTParagraphStyleSetting paragraphStyle;
|
|
|
+// paragraphStyle.spec = kCTParagraphStyleSpecifierParagraphSpacing;
|
|
|
+// paragraphStyle.valueSize = sizeof(CGFloat);
|
|
|
+// paragraphStyle.value = ¶graph;
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// //创建样式数组
|
|
|
+// CTParagraphStyleSetting settings[]={
|
|
|
+// alignmentStyle,lineSpaceStyle,paragraphStyle,linebreakStyle
|
|
|
+// };
|
|
|
+//
|
|
|
+// //设置样式
|
|
|
+// CTParagraphStyleRef paragraphStyle1 = CTParagraphStyleCreate(settings, sizeof(settings));
|
|
|
+//
|
|
|
+// //给字符串添加样式attribute
|
|
|
+// [string addAttribute:(id)kCTParagraphStyleAttributeName
|
|
|
+// value:CFBridgingRelease(paragraphStyle1)
|
|
|
+// range:NSMakeRange(0, [string length])];
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// // CGRect pdfrect=[self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
+// // [string drawInRect:pdfrect];
|
|
|
+//
|
|
|
+//
|
|
|
+// // [self.text drawInRect:pdfrect withAttributes:@{NSFontAttributeName : [UIFont systemFontOfSize:40],NSForegroundColorAttributeName : [UIColor redColor]}];
|
|
|
+//
|
|
|
+// // layout master
|
|
|
+// CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)string);
|
|
|
+// //计算文本绘制size ,这里300是文字宽度,你可以自己更改为247,但是要记得,在height 方法里的这个位置,也改为247
|
|
|
+// CGSize tmpSize = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0,0), NULL, CGSizeMake(self.rect.size.width-self.margin_left-self.margin_right, MAXFLOAT), NULL);
|
|
|
+// //创建textBoxSize以设置view的frame
|
|
|
+// CGSize textBoxSize = CGSizeMake((int)tmpSize.width + 1, (int)tmpSize.height + 1);
|
|
|
+// // DebugLog(@"textBoxSize0 == %f,%f,%f",textBoxSize.width,textBoxSize.height,textBoxSize.width / textBoxSize.height);
|
|
|
+// // self.frame = CGRectMake(0, 0, textBoxSize.width , textBoxSize.height);
|
|
|
+// // [string release];
|
|
|
+//
|
|
|
+// //- (void)drawRect:(CGRect)rect;代码
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// // CGMutablePathRef leftColumnPath = CGPathCreateMutable();
|
|
|
+//
|
|
|
+// CGRect parentrect = [self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
+//
|
|
|
+//
|
|
|
+// double height =0;
|
|
|
+// if(tmpSize.height<parentrect.size.height)
|
|
|
+// height=tmpSize.height;
|
|
|
+// else
|
|
|
+// if(expand)
|
|
|
+// {
|
|
|
+// height=tmpSize.height;
|
|
|
+// self.rect = CGRectMake(self.rect.origin.x, self.rect.origin.y, self.rect.size.width, height+self.margin_top+self.margin_bottom);
|
|
|
+// }
|
|
|
+// else
|
|
|
+// height=parentrect.size.height;
|
|
|
+//
|
|
|
+// CGRect rect=CGRectMake(parentrect.origin.x, parentrect.origin.y, parentrect.size.width, height);
|
|
|
+//
|
|
|
+// CGRect expand_rect=rect;
|
|
|
+//
|
|
|
+// // CGRect rect=[RAUtils rectAlign:parentrect rect:scalerect hAlign:self.hAlign vAlign:self.vAlign];
|
|
|
+// // rect=[RAUtils rectVAlign:parentrect rect:rect vAlign:self.vAlign];
|
|
|
+// //
|
|
|
+// // // CGRect pdfrect = [self to_pdf_rect:p_rect pos:self.rect contextHeight:flip_height];
|
|
|
+// //
|
|
|
+// // rect= [self parent_to_pdf_rect:rect contextHeight:flip_height];
|
|
|
+// // // pdfrect=CGRectMake(pdfrect.origin.x, flip_height-pdfrect.origin.y, pdfrect.size.width, pdfrect.size.height);
|
|
|
+// // CGPathAddRect(leftColumnPath, NULL,
|
|
|
+// // rect);
|
|
|
+// //
|
|
|
+// // CTFrameRef leftFrame = CTFramesetterCreateFrame(framesetter,
|
|
|
+// // CFRangeMake(0, 0),
|
|
|
+// // leftColumnPath, NULL);
|
|
|
+// //
|
|
|
+// // // DebugLog(@"textBoxSize1 == %f,%f",self.frame.size.width,self.frame.size.height);
|
|
|
+// // // flip the coordinate system
|
|
|
+// // // CGContextRef context = UIGraphicsGetCurrentContext();
|
|
|
+// //
|
|
|
+// //
|
|
|
+// // // CGContextClearRect(context, self.rect);
|
|
|
+// // // CGContextSetFillColorWithColor(context, [[UIColor whiteColor]CGColor]);
|
|
|
+// // // CGContextFillRect(context, CGRectMake(0, 0, self.rect.size.width, self.rect.size.height));
|
|
|
+// //
|
|
|
+// //
|
|
|
+// // CGContextSetTextMatrix(context, CGAffineTransformIdentity);
|
|
|
+// // // CGContextTranslateCTM(context, 0, self.rect.size.height);
|
|
|
+// // // CGContextScaleCTM(context, 1.0, -1.0);
|
|
|
+// //
|
|
|
+// // // draw
|
|
|
+// // CTFrameDraw(leftFrame, context);
|
|
|
+// //
|
|
|
+// //
|
|
|
+// // CFRelease(leftFrame);
|
|
|
+// // // cleanup
|
|
|
+// //
|
|
|
+// // CGPathRelease(leftColumnPath);
|
|
|
+// CFRelease(framesetter);
|
|
|
+//
|
|
|
+//
|
|
|
+// // return self.rect;
|
|
|
+// // [self DrawBound:context dataSource:data ParentRect:p_rect startX:x startY:y flipHeight:flip_height range:between_header_and_footer];
|
|
|
+// if(expand&&expand_rect.size.height>parentrect.size.height)
|
|
|
+// return expand_rect;
|
|
|
+// else
|
|
|
+// return parentrect;
|
|
|
+// // return CGPointMake(parentrect.origin.x+parentrect.size.width, parentrect.origin.y+parentrect.size.height);
|
|
|
+//
|
|
|
+// // [super restoreFlip:context ContextHeight:flip_height];
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+//}
|
|
|
+//-(CTFontRef)CreateFont:(NSString*)name size:(double)size bold:(bool)bold
|
|
|
+//{
|
|
|
+//
|
|
|
+// if(name.length==0)
|
|
|
+// {
|
|
|
+// name=@"Helvetica";
|
|
|
+// // name=@"DejaVu Sans";
|
|
|
+// }
|
|
|
+// if(size==0)
|
|
|
+// {
|
|
|
+// size=10;
|
|
|
+// }
|
|
|
+// NSString* style = @"Regular";
|
|
|
+// if(bold)
|
|
|
+// style=@"Bold";
|
|
|
+//
|
|
|
+// //name=@"Courier";
|
|
|
+//
|
|
|
+// NSDictionary *fontAttributes =
|
|
|
+// [NSDictionary dictionaryWithObjectsAndKeys:
|
|
|
+// name, (NSString *)kCTFontFamilyNameAttribute,
|
|
|
+// style, (NSString *)kCTFontStyleNameAttribute,
|
|
|
+// [NSNumber numberWithFloat:size],
|
|
|
+// (NSString *)kCTFontSizeAttribute,
|
|
|
+// nil];
|
|
|
+// // Create a descriptor.
|
|
|
+// CFDictionaryRef cffontAttributes =(__bridge CFDictionaryRef)fontAttributes;
|
|
|
+// CTFontDescriptorRef descriptor =
|
|
|
+// CTFontDescriptorCreateWithAttributes(cffontAttributes);
|
|
|
+//
|
|
|
+// // CFBridgingRelease(cffontAttributes);
|
|
|
+//
|
|
|
+// // Create a font using the descriptor.
|
|
|
+// CTFontRef font = CTFontCreateWithFontDescriptor(descriptor, 0.0, NULL);
|
|
|
+// CFBridgingRelease(descriptor);
|
|
|
+//
|
|
|
+// return font;
|
|
|
+//
|
|
|
+// // if(bold)
|
|
|
+// // {
|
|
|
+// // CTFontRef font=CTFontCreateWithName((__bridge CFStringRef)name, size, NULL);
|
|
|
+// // CTFontRef font_bold =CTFontCreateCopyWithSymbolicTraits(font, 0.0, NULL, kCTFontBoldTrait, kCTFontBoldTrait);
|
|
|
+// // CFBridgingRelease(font);
|
|
|
+// // return font_bold;
|
|
|
+// // }
|
|
|
+// // return CTFontCreateWithName((__bridge CFStringRef)name, size, NULL);
|
|
|
+//}
|
|
|
+////-(NSString*) QueryFontName:(NSString*)font
|
|
|
+////{
|
|
|
+//// if(font==nil)
|
|
|
+//// {
|
|
|
+//// return @"Helvetica";
|
|
|
+//// }
|
|
|
+//// else if([font.lowercaseString isEqualToString:@"kalinga"])
|
|
|
+//// {
|
|
|
+//// return @"kalinga";
|
|
|
+//// }
|
|
|
+//// return @"Helvetica";
|
|
|
+////}
|
|
|
+//-(NSMutableAttributedString*) richtext2attributedstring:(NSMutableAttributedString*)string font:(NSString*)font size:(double)size bold:(bool)bold
|
|
|
+//{
|
|
|
+// // UILabel* uilabel=[[UILabel alloc]init];
|
|
|
+// // uilabel.font=[UIFont fontWithName:font size:size];
|
|
|
+// // NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[self.text dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
|
|
|
+// // uilabel.attributedText = attrStr;
|
|
|
+// // DebugLog(@"%@", attrStr);
|
|
|
+// // DebugLog(@"%@", uilabel.attributedText);
|
|
|
+//
|
|
|
+// CTFontRef ctfont = [self CreateFont:font size:size bold:bold];//CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);b
|
|
|
+//
|
|
|
+// //CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
+// // CTFontRef helveticaBold = CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
+// //字体,把helvetica 样式加到整个,string上
|
|
|
+// [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// value:CFBridgingRelease(ctfont)
|
|
|
+// range:NSMakeRange(0, [string length])];
|
|
|
+//
|
|
|
+// //颜色,此处为黑色,你可以自己改颜色,[UIColor redColor]
|
|
|
+// [string addAttribute:(id)kCTForegroundColorAttributeName
|
|
|
+// value:(id)self.textColor.CGColor
|
|
|
+// range:NSMakeRange(0, [string length])];
|
|
|
+//
|
|
|
+//
|
|
|
+// if(!bold)
|
|
|
+// {
|
|
|
+// CTFontRef ctfont_bold = [self CreateFont:font size:size bold:true];
|
|
|
+// NSString* newstring= nil;
|
|
|
+// // NSString *content = string.string ;
|
|
|
+// NSString *pattern = @"\\<b\\>([\\s\\S]*?)\\<\\/b\\>";
|
|
|
+// // NSArray* matches=[TextUtils expression_varable:content regex:pattern];
|
|
|
+// // if (matches) {
|
|
|
+// // for (NSTextCheckingResult *match in matches) {
|
|
|
+// // for (int i = 0; i < match.numberOfRanges; ++i) {
|
|
|
+// // DebugLog(@"%d-> %@",i, [content substringWithRange:[match rangeAtIndex:i]]);
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// NSTextCheckingResult * match=[TextUtils expression_findfistMatch:string.string regex:pattern];
|
|
|
+//
|
|
|
+// while(match)
|
|
|
+// {
|
|
|
+// //for (int i = 0; i < match.numberOfRanges/2; ++i)
|
|
|
+// {
|
|
|
+// int i=0;
|
|
|
+// DebugLog(@"%d->range with richtext label: %d,%d",i, [match rangeAtIndex:i].location,[match rangeAtIndex:i].length);
|
|
|
+// DebugLog(@"%d-> range of text: %d,%d ",i+1, [match rangeAtIndex:i+1].location,[match rangeAtIndex:i+1].length);
|
|
|
+//
|
|
|
+//
|
|
|
+// DebugLog(@"string length: %d",string.string.length);
|
|
|
+// [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// value:(__bridge id _Nonnull)(ctfont_bold)
|
|
|
+// range:[match rangeAtIndex:i+1]];
|
|
|
+//
|
|
|
+// [string replaceCharactersInRange:NSMakeRange([match rangeAtIndex:i+1].location+[match rangeAtIndex:i+1].length, [match rangeAtIndex:i].location+[match rangeAtIndex:i].length-([match rangeAtIndex:i+1].location+[match rangeAtIndex:i+1].length)) withString:@""];
|
|
|
+// [string replaceCharactersInRange:NSMakeRange([match rangeAtIndex:i].location, [match rangeAtIndex:i+1].location-[match rangeAtIndex:i].location) withString:@""];
|
|
|
+//
|
|
|
+// DebugLog(@"string after replace: %@",string.string);
|
|
|
+// //newstring=[newstring stringByReplacingOccurrencesOfString:[content substringWithRange:[match rangeAtIndex:i]] withString:[content substringWithRange:[match rangeAtIndex:i+1]]];
|
|
|
+// match=[TextUtils expression_findfistMatch:string.string regex:pattern];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // if (matches)
|
|
|
+// // {
|
|
|
+// // newstring=content;
|
|
|
+// // for (NSTextCheckingResult *match in matches)
|
|
|
+// // {
|
|
|
+// //
|
|
|
+// // for (int i = 0; i < match.numberOfRanges/2; ++i)
|
|
|
+// // {
|
|
|
+// // DebugLog(@"%d-> %@",i, [content substringWithRange:[match rangeAtIndex:i]]);
|
|
|
+// // DebugLog(@"%d-> %@",i+1, [content substringWithRange:[match rangeAtIndex:i+1]]);
|
|
|
+// //
|
|
|
+// // [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// // value:CFBridgingRelease(ctfont_bold)
|
|
|
+// // range:[match rangeAtIndex:i+1]];
|
|
|
+// //
|
|
|
+// // newstring=[newstring stringByReplacingOccurrencesOfString:[content substringWithRange:[match rangeAtIndex:i]] withString:[content substringWithRange:[match rangeAtIndex:i+1]]];
|
|
|
+// //
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// CFBridgingRelease(ctfont_bold);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// return string;
|
|
|
+//}
|
|
|
+//-(CGRect) Draw:(CGContextRef) context dataSource:(NSMutableDictionary*)data ParentRect:(CGRect)p_rect startX:(double) x startY:(double) y flipHeight:(double)flip_height range:(NSRange)between_header_and_footer
|
|
|
+//{
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// NSString * source=self.drawableTemplate[@"source_type"];
|
|
|
+// if(source==nil)
|
|
|
+// source=@"const";
|
|
|
+// if([source isEqualToString:@"const"])
|
|
|
+// {
|
|
|
+// self.text=self.drawableTemplate[@"text"];
|
|
|
+// // self.text=[self.text stringByReplacingOccurrencesOfString:@"\r\n" withString:@"<br>"];
|
|
|
+//
|
|
|
+// }
|
|
|
+// else if([source isEqualToString:@"data"])
|
|
|
+// {
|
|
|
+// if([self.drawableTemplate[@"source_isexpression"] boolValue])
|
|
|
+// {
|
|
|
+// NSString *content = data[self.drawableTemplate[@"source"]];
|
|
|
+// NSString *pattern = @"\\$\\.\\{([\\s\\S]*?)\\}\\.\\$";
|
|
|
+// NSArray* matches=[TextUtils expression_varable:content regex:pattern];
|
|
|
+// // if (matches) {
|
|
|
+// // for (NSTextCheckingResult *match in matches) {
|
|
|
+// // for (int i = 0; i < match.numberOfRanges; ++i) {
|
|
|
+// // DebugLog(@"%d-> %@",i, [content substringWithRange:[match rangeAtIndex:i]]);
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// if (matches)
|
|
|
+// {
|
|
|
+// self.text=content;
|
|
|
+// for (NSTextCheckingResult *match in matches)
|
|
|
+// {
|
|
|
+//
|
|
|
+// for (int i = 0; i < match.numberOfRanges/2; ++i) {
|
|
|
+// DebugLog(@"%d-> %@",i, [content substringWithRange:[match rangeAtIndex:i]]);
|
|
|
+// DebugLog(@"%d-> %@",i+1, [content substringWithRange:[match rangeAtIndex:i+1]]);
|
|
|
+//
|
|
|
+// self.text=[self.text stringByReplacingOccurrencesOfString:[content substringWithRange:[match rangeAtIndex:i]] withString:[NSString stringWithFormat:@"%@",data[[content substringWithRange:[match rangeAtIndex:i+1]]]]];
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //self.text=content;
|
|
|
+//
|
|
|
+// }
|
|
|
+// else
|
|
|
+// {
|
|
|
+// self.text=data[self.drawableTemplate[@"source"]];
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if(self.text==nil)
|
|
|
+// self.text=@"";
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//// if([self.text isEqualToString:@"www.newpacificdirect.com"])
|
|
|
+//// {
|
|
|
+//// int debug=0;
|
|
|
+//// }
|
|
|
+//
|
|
|
+//
|
|
|
+// bool bold = [self.drawableTemplate[@"bold"] boolValue];
|
|
|
+// bool italic = [self.drawableTemplate[@"italic"] boolValue];
|
|
|
+// NSString* font=self.drawableTemplate[@"font"];
|
|
|
+//
|
|
|
+// // [super flipContext:context ContextHeight:flip_height];
|
|
|
+// // super flipContext:context ContextHeight:<#(double)#>
|
|
|
+// CGFloat fontsize = [self.drawableTemplate[@"size"] doubleValue];
|
|
|
+//
|
|
|
+// //NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[title dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
|
|
|
+// //创建AttributeStringfdsa
|
|
|
+//
|
|
|
+// NSMutableAttributedString *string = nil;
|
|
|
+// // if([self.drawableTemplate[@"ishtml"] boolValue])
|
|
|
+// // {
|
|
|
+// // string=[[[NSAttributedString alloc] initWithData:[self.text dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil] mutableCopy];
|
|
|
+// //
|
|
|
+// // }
|
|
|
+// // else
|
|
|
+//
|
|
|
+// string=[[NSMutableAttributedString alloc] initWithString:self.text];
|
|
|
+// //创建字体以及字体大小
|
|
|
+// // CTFontRef ctfont = [self CreateFont:font size:fontsize bold:bold];//CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
+// // // CTFontRef helveticaBold = CTFontCreateWithName(CFSTR("Helvetica"), fontsize, NULL);
|
|
|
+// // //字体,把helvetica 样式加到整个,string上
|
|
|
+// // [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// // value:CFBridgingRelease(ctfont)
|
|
|
+// // range:NSMakeRange(0, [string length])];
|
|
|
+// //
|
|
|
+// // //字体样式 ,把helveticaBold 样式加到整个,string上
|
|
|
+// // // [string addAttribute:(id)kCTFontAttributeName
|
|
|
+// // // value:CFBridgingRelease(helveticaBold)
|
|
|
+// // // range:NSMakeRange(0, [string length])];
|
|
|
+// //
|
|
|
+// // //颜色,此处为黑色,你可以自己改颜色,[UIColor redColor]
|
|
|
+// // [string addAttribute:(id)kCTForegroundColorAttributeName
|
|
|
+// // value:(id)self.textColor.CGColor
|
|
|
+// // range:NSMakeRange(0, [string length])];
|
|
|
+//
|
|
|
+// string = [self richtext2attributedstring:string font:font size:fontsize bold:bold];
|
|
|
+//
|
|
|
+//
|
|
|
+// //设置字体间距
|
|
|
+// long number = self.characterSpace;
|
|
|
+// CFNumberRef num = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt8Type, &number);
|
|
|
+// [string addAttribute:(id)kCTKernAttributeName value:CFBridgingRelease(num) range:NSMakeRange(0, [string length])];
|
|
|
+// //CFRelease(num);
|
|
|
+//
|
|
|
+//
|
|
|
+// //创建文本对齐方式
|
|
|
+// CTTextAlignment alignment = self.textalignment;//对齐方
|
|
|
+// CTParagraphStyleSetting alignmentStyle;
|
|
|
+// alignmentStyle.spec=kCTParagraphStyleSpecifierAlignment;
|
|
|
+// alignmentStyle.valueSize=sizeof(alignment);
|
|
|
+// alignmentStyle.value=&alignment;
|
|
|
+//
|
|
|
+// //创建文本, 行间距
|
|
|
+// CGFloat lineSpace=self.lineSpace;//间距数据
|
|
|
+// CTParagraphStyleSetting lineSpaceStyle;
|
|
|
+// lineSpaceStyle.spec=kCTParagraphStyleSpecifierLineSpacing;
|
|
|
+// lineSpaceStyle.valueSize=sizeof(lineSpace);
|
|
|
+// lineSpaceStyle.value=&lineSpace;
|
|
|
+//
|
|
|
+// //设置 line break;
|
|
|
+// CTLineBreakMode linebreakmode = kCTLineBreakByTruncatingTail;
|
|
|
+// CTParagraphStyleSetting linebreakStyle;
|
|
|
+// linebreakStyle.spec = kCTParagraphStyleSpecifierLineBreakMode;
|
|
|
+// linebreakStyle.valueSize = sizeof(CGFloat);
|
|
|
+// linebreakStyle.value = &linebreakmode;
|
|
|
+//
|
|
|
+//
|
|
|
+// //设置 段落间距
|
|
|
+// CGFloat paragraph = self.paragraphSpace;
|
|
|
+// CTParagraphStyleSetting paragraphStylesetting;
|
|
|
+// paragraphStylesetting.spec = kCTParagraphStyleSpecifierParagraphSpacing;
|
|
|
+// paragraphStylesetting.valueSize = sizeof(CGFloat);
|
|
|
+// paragraphStylesetting.value = ¶graph;
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// //创建样式数组
|
|
|
+// CTParagraphStyleSetting settings[]={
|
|
|
+// alignmentStyle,lineSpaceStyle,paragraphStylesetting,linebreakStyle
|
|
|
+// };
|
|
|
+//
|
|
|
+// //设置样式
|
|
|
+// CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(settings, sizeof(settings));
|
|
|
+//
|
|
|
+// //给字符串添加样式attribute
|
|
|
+// [string addAttribute:(id)kCTParagraphStyleAttributeName
|
|
|
+// value:CFBridgingRelease(paragraphStyle)
|
|
|
+// range:NSMakeRange(0, [string length])];
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// // CGRect pdfrect=[self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
+// // [string drawInRect:pdfrect];
|
|
|
+//
|
|
|
+//
|
|
|
+// // [self.text drawInRect:pdfrect withAttributes:@{NSFontAttributeName : [UIFont systemFontOfSize:40],NSForegroundColorAttributeName : [UIColor redColor]}];
|
|
|
+//
|
|
|
+// // layout master
|
|
|
+// CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)string);
|
|
|
+// //计算文本绘制size ,这里300是文字宽度,你可以自己更改为247,但是要记得,在height 方法里的这个位置,也改为247
|
|
|
+// CGSize tmpSize = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0,0), NULL, CGSizeMake(self.rect.size.width-self.margin_left-self.margin_right, MAXFLOAT), NULL);
|
|
|
+// //创建textBoxSize以设置view的frame
|
|
|
+// CGSize textBoxSize = CGSizeMake((int)tmpSize.width + 1, (int)tmpSize.height + 1);
|
|
|
+// // DebugLog(@"textBoxSize0 == %f,%f,%f",textBoxSize.width,textBoxSize.height,textBoxSize.width / textBoxSize.height);
|
|
|
+// // self.frame = CGRectMake(0, 0, textBoxSize.width , textBoxSize.height);
|
|
|
+// // [string release];
|
|
|
+//
|
|
|
+// //- (void)drawRect:(CGRect)rect;代码
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// CGMutablePathRef leftColumnPath = CGPathCreateMutable();
|
|
|
+//
|
|
|
+// CGRect parentrect = [self to_parent_rect:p_rect pos:self.rect offsetX:0 offsetY:0];
|
|
|
+//
|
|
|
+// bool expand=[self.drawableTemplate[@"expand"] boolValue];
|
|
|
+// double height =0;
|
|
|
+// if(tmpSize.height<parentrect.size.height)
|
|
|
+// height=tmpSize.height;
|
|
|
+// else
|
|
|
+// if(expand)
|
|
|
+// {
|
|
|
+// height=tmpSize.height;
|
|
|
+// self.rect = CGRectMake(self.rect.origin.x, self.rect.origin.y, self.rect.size.width, height+self.margin_top+self.margin_bottom);
|
|
|
+// }
|
|
|
+// else
|
|
|
+// height=parentrect.size.height;
|
|
|
+//
|
|
|
+// CGRect rect=CGRectMake(parentrect.origin.x, parentrect.origin.y, parentrect.size.width, height);
|
|
|
+//
|
|
|
+// CGRect expand_rect=rect;
|
|
|
+//
|
|
|
+// // CGRect rect=[RAUtils rectAlign:parentrect rect:scalerect hAlign:self.hAlign vAlign:self.vAlign];
|
|
|
+// rect=[TextUtils rectVAlign:parentrect rect:rect vAlign:self.vAlign];
|
|
|
+//
|
|
|
+// // CGRect pdfrect = [self to_pdf_rect:p_rect pos:self.rect contextHeight:flip_height];
|
|
|
+//
|
|
|
+// rect= [self parent_to_pdf_rect:rect contextHeight:flip_height];
|
|
|
+// // pdfrect=CGRectMake(pdfrect.origin.x, flip_height-pdfrect.origin.y, pdfrect.size.width, pdfrect.size.height);
|
|
|
+// CGPathAddRect(leftColumnPath, NULL,
|
|
|
+// rect);
|
|
|
+//
|
|
|
+// CTFrameRef leftFrame = CTFramesetterCreateFrame(framesetter,
|
|
|
+// CFRangeMake(0, 0),
|
|
|
+// leftColumnPath, NULL);
|
|
|
+//
|
|
|
+// // DebugLog(@"textBoxSize1 == %f,%f",self.frame.size.width,self.frame.size.height);
|
|
|
+// // flip the coordinate system
|
|
|
+// // CGContextRef context = UIGraphicsGetCurrentContext();
|
|
|
+//
|
|
|
+//
|
|
|
+// // CGContextClearRect(context, self.rect);
|
|
|
+// // CGContextSetFillColorWithColor(context, [[UIColor whiteColor]CGColor]);
|
|
|
+// // CGContextFillRect(context, CGRectMake(0, 0, self.rect.size.width, self.rect.size.height));
|
|
|
+//
|
|
|
+//
|
|
|
+// CGContextSetTextMatrix(context, CGAffineTransformIdentity);
|
|
|
+// // CGContextTranslateCTM(context, 0, self.rect.size.height);
|
|
|
+// // CGContextScaleCTM(context, 1.0, -1.0);
|
|
|
+//
|
|
|
+// // draw
|
|
|
+// CTFrameDraw(leftFrame, context);
|
|
|
+//
|
|
|
+//
|
|
|
+// CFRelease(leftFrame);
|
|
|
+// // cleanup
|
|
|
+//
|
|
|
+// CGPathRelease(leftColumnPath);
|
|
|
+// CFRelease(framesetter);
|
|
|
+//
|
|
|
+//
|
|
|
+// // return self.rect;
|
|
|
+// [self DrawBound:context dataSource:data ParentRect:p_rect startX:x startY:y flipHeight:flip_height range:between_header_and_footer];
|
|
|
+// if(expand&&expand_rect.size.height>parentrect.size.height)
|
|
|
+// return expand_rect;
|
|
|
+// else
|
|
|
+// return parentrect;
|
|
|
+// // return CGPointMake(parentrect.origin.x+parentrect.size.width, parentrect.origin.y+parentrect.size.height);
|
|
|
+//
|
|
|
+// // [super restoreFlip:context ContextHeight:flip_height];
|
|
|
+//}
|
|
|
+//
|
|
|
+//
|
|
|
+//@end
|