IOS: формат NSString - PullRequest
       10

IOS: формат NSString

0 голосов
/ 28 июля 2011

У меня есть этот код:

NSString *firstString = [[NSString stringWithFormat:@"%@",stringToWrite] stringByPaddingToLength:40 withString:@" " startingAtIndex:0];
    NSString *finallyString = @"";
    finallyString = [firstString stringByAppendingString:secondString];

с этим кодом у меня есть текстовое форматирование моей строки с двумя столбцами, но когда я печатаю эти строки с помощью метода airPrint, они теряют это текстовое форматирование. Почему в NSLog все нормально, и когда я печатаю на бумаге, форматирование текста теряется?

код печати:

NSMutableString *printHead = [NSMutableString stringWithFormat:@"%@", @"words"];
for (int i = 0; i<myArray.count; i++)
{
    [printHead appendFormat:@"\n\n\n"];
    NSString *stringToWrite = [[myArray objectAtIndex:i]objectAtIndex:0];
    NSString *firstString = [[NSString stringWithFormat:@"%@",stringToWrite] stringByPaddingToLength:40 withString:@" " startingAtIndex:0];
    NSString *finallyString = @"";
    finallyString = [firstString stringByAppendingString:[[myArray objectAtIndex:i]objectAtIndex:1]];
    [printHead appendString:finallyString];
    }
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
pic.delegate = self;

UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
pic.printInfo = printInfo;

UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc] initWithText:printHead];
textFormatter.startPage = 0;
//textFormatter.color = [UIColor redColor];
textFormatter.contentInsets = UIEdgeInsetsMake(30.0, 30.0, 72.0, 72.0); // 1 inch margins
textFormatter.maximumContentWidth = 8 * 72.0;
pic.printFormatter = textFormatter;
[textFormatter release];


pic.showsPageRange = YES;

void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
    if (!completed && error) {
        NSLog(@"Printing could not complete because of error: %@", error);
    }
};

[pic presentAnimated:YES completionHandler:completionHandler];

1 Ответ

0 голосов
/ 28 июля 2011

NSLog () - это не то, на что вы должны полагаться при форматировании. Если вы хотите, чтобы ваш текст отображался определенным образом при печати, вам нужно нарисовать его в виде. Если вы хотите, чтобы при печати вид выглядел иначе, чем на экране, используйте -drawRect:forViewPrintFormatter:, чтобы нарисовать печатную версию.

...