IOS使用旋转文本创建PDF文件

时间:2013-07-01 23:35:36

标签: ios objective-c pdf

我创建了pdf文件。我需要绘制旋转文本。目前我有这个pdf文件

enter image description here

我的代码绘制文本

............

CGContextTranslateCTM(context, 0, frameRect.origin.y*2);
CGContextScaleCTM(context, 1.0, -1.0);
// Draw the frame.
CTFrameDraw(frame, context);


// Add these two lines to reverse the earlier transformation.
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, 0, (-1)*frameRect.origin.y*2);

我知道我必须使用CGContextRotateCTM(CGContextRef c, GFloat angle),但我很难理解转变,我无法按需要做。

1 个答案:

答案 0 :(得分:0)

以下内容将文字旋转-90度添加到页面顶部yOffset的指定上下文中:

+(void)addRotatedLabel:(CGContextRef)context atYOffset:(CGFloat)yOffset{

    // -90 degrees
    CGFloat rotation = -M_PI / 2.f;
    CGContextRotateCTM(context, rotation);

    NSString *label = [NSString stringWithFormat:@"%@", @"some text"];
    CGSize maxSize = CGSizeMake(300, 12);
    UIFont *font = [UIFont systemFontOfSize:7.5f];
    CGSize textSize = [label sizeWithFont:font constrainedToSize:maxSize lineBreakMode:NSLineBreakByClipping];
    CGRect titleRect = CGRectMake(-yOffset, 32.f - textSize.height + 3.f, textSize.width, textSize.height);

    [[UIColor blackColor] setFill];
    [label drawInRect:titleRect withFont:font];

    CGContextRotateCTM(context, -rotation);
}

可以轻松修改它以处理其他旋转,字体大小,传递NSString等。