//
//  IFXPDFTextLinesSample.m
//  IFXPDFFactory-iOS-SamplesBrowser
//
//  Created by Sorin Nistor on 11/12/13.
//  Copyright (c) 2013 IFXFactory. All rights reserved.
//

#import "IFXPDFTextLinesSample.h"

@implementation IFXPDFTextLinesSample

+ (IFXPDFDocument*) run
{
    IFXPDFDocument* pdfDocument = [[IFXPDFDocument alloc] init];
    IFXPDFPage* page = [IFXPDFPage emptyPage];
    [pdfDocument.pages addPage:page];
    
    IFXPDFBrush* blackBrush = [IFXPDFBrush brushWithColor:[IFXPDFRgbColor blackColor]];
    IFXPDFPen* redPen = [IFXPDFPen penWithColor:[IFXPDFRgbColor redColor] andWidth:1];
    
    IFXPDFFont* titleFont = [[IFXPDFFont alloc] init];
    titleFont.fontFace = IFXPDFHelveticaBoldFontFace;
    titleFont.size = 24;
    
    [page.graphics drawText:@"Text Lines" withFont:titleFont brush:blackBrush atX:20 y:50];
    
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:80 toX2:400 y2:80];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:80 toX2:20 y2:100];
    IFXPDFFont* helvetica = [[IFXPDFFont alloc] init];
    helvetica.fontFace = IFXPDFHelveticaFontFace;
    helvetica.size = 16;
    [page.graphics drawText:@"Text lines have top left alignment by default." withFont:helvetica brush:blackBrush atX:20 y:80];
    
    [page.graphics drawText:@"Text align modes" withFont:helvetica brush:blackBrush atX:20 y:200];
    // Draw the alignment grid.
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:240 toX2:600 y2:240];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:280 toX2:600 y2:280];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:320 toX2:600 y2:320];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:240 toX2:20 y2:320];
    [page.graphics drawLineWithPen:redPen fromX1:310 y1:240 toX2:310 y2:320];
    [page.graphics drawLineWithPen:redPen fromX1:600 y1:240 toX2:600 y2:320];
    
    [page.graphics drawText:@"TOP LEFT" withFont:helvetica brush:blackBrush
                        atX:20 y:240 rotation:0
            horizontalAlign:IFXPDFTextLeftHorizontalAlign verticalAlign:IFXPDFTextTopVerticalAlign];
    [page.graphics drawText:@"TOP CENTER" withFont:helvetica brush:blackBrush
                        atX:310 y:240 rotation:0
            horizontalAlign:IFXPDFTextCenterHorizontalAlign verticalAlign:IFXPDFTextTopVerticalAlign];
    [page.graphics drawText:@"TOP RIGHT" withFont:helvetica brush:blackBrush
                        atX:600 y:240 rotation:0
            horizontalAlign:IFXPDFTextRightHorizontalAlign verticalAlign:IFXPDFTextTopVerticalAlign];
    [page.graphics drawText:@"MIDDLE LEFT" withFont:helvetica brush:blackBrush
                        atX:20 y:280 rotation:0
            horizontalAlign:IFXPDFTextLeftHorizontalAlign verticalAlign:IFXPDFTextMiddleVerticalAlign];
    [page.graphics drawText:@"MIDDLE CENTER" withFont:helvetica brush:blackBrush
                        atX:310 y:280 rotation:0
            horizontalAlign:IFXPDFTextCenterHorizontalAlign verticalAlign:IFXPDFTextMiddleVerticalAlign];
    [page.graphics drawText:@"MIDDLE RIGHT" withFont:helvetica brush:blackBrush
                        atX:600 y:280 rotation:0
            horizontalAlign:IFXPDFTextRightHorizontalAlign verticalAlign:IFXPDFTextMiddleVerticalAlign];
    [page.graphics drawText:@"BOTTOM LEFT" withFont:helvetica brush:blackBrush
                        atX:20 y:320 rotation:0
            horizontalAlign:IFXPDFTextLeftHorizontalAlign verticalAlign:IFXPDFTextBottomVerticalAlign];
    [page.graphics drawText:@"BOTTOM CENTER" withFont:helvetica brush:blackBrush
                        atX:310 y:320 rotation:0
            horizontalAlign:IFXPDFTextCenterHorizontalAlign verticalAlign:IFXPDFTextBottomVerticalAlign];
    [page.graphics drawText:@"BOTTOM RIGHT" withFont:helvetica brush:blackBrush
                        atX:600 y:320 rotation:0
            horizontalAlign:IFXPDFTextRightHorizontalAlign verticalAlign:IFXPDFTextBottomVerticalAlign];

    [page.graphics drawText:@"Combine text align modes and text rotation (30 degrees)" withFont:helvetica brush:blackBrush atX:20 y:400];
    // Draw the alignment grid.
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:440 toX2:600 y2:440];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:480 toX2:600 y2:480];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:520 toX2:600 y2:520];
    [page.graphics drawLineWithPen:redPen fromX1:20 y1:440 toX2:20 y2:520];
    [page.graphics drawLineWithPen:redPen fromX1:310 y1:440 toX2:310 y2:520];
    [page.graphics drawLineWithPen:redPen fromX1:600 y1:440 toX2:600 y2:520];

    [page.graphics drawText:@"TOP LEFT" withFont:helvetica brush:blackBrush
                        atX:20 y:440 rotation:30
            horizontalAlign:IFXPDFTextLeftHorizontalAlign verticalAlign:IFXPDFTextTopVerticalAlign];
    [page.graphics drawText:@"TOP CENTER" withFont:helvetica brush:blackBrush
                        atX:310 y:440 rotation:30
            horizontalAlign:IFXPDFTextCenterHorizontalAlign verticalAlign:IFXPDFTextTopVerticalAlign];
    [page.graphics drawText:@"TOP RIGHT" withFont:helvetica brush:blackBrush
                        atX:600 y:440 rotation:30
            horizontalAlign:IFXPDFTextRightHorizontalAlign verticalAlign:IFXPDFTextTopVerticalAlign];
    [page.graphics drawText:@"MIDDLE LEFT" withFont:helvetica brush:blackBrush
                        atX:20 y:480 rotation:30
            horizontalAlign:IFXPDFTextLeftHorizontalAlign verticalAlign:IFXPDFTextMiddleVerticalAlign];
    [page.graphics drawText:@"MIDDLE CENTER" withFont:helvetica brush:blackBrush
                        atX:310 y:480 rotation:30
            horizontalAlign:IFXPDFTextCenterHorizontalAlign verticalAlign:IFXPDFTextMiddleVerticalAlign];
    [page.graphics drawText:@"MIDDLE RIGHT" withFont:helvetica brush:blackBrush
                        atX:600 y:480 rotation:30
            horizontalAlign:IFXPDFTextRightHorizontalAlign verticalAlign:IFXPDFTextMiddleVerticalAlign];
    [page.graphics drawText:@"BOTTOM LEFT" withFont:helvetica brush:blackBrush
                        atX:20 y:520 rotation:30
            horizontalAlign:IFXPDFTextLeftHorizontalAlign verticalAlign:IFXPDFTextBottomVerticalAlign];
    [page.graphics drawText:@"BOTTOM CENTER" withFont:helvetica brush:blackBrush
                        atX:310 y:520 rotation:30
            horizontalAlign:IFXPDFTextCenterHorizontalAlign verticalAlign:IFXPDFTextBottomVerticalAlign];
    [page.graphics drawText:@"BOTTOM RIGHT" withFont:helvetica brush:blackBrush
                        atX:600 y:520 rotation:30
            horizontalAlign:IFXPDFTextRightHorizontalAlign verticalAlign:IFXPDFTextBottomVerticalAlign];

    return pdfDocument;
}

@end