2011-07-28 1 views
0

У меня есть этот код:IOS: NSString формат

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]; 
+0

Какой шрифт печатается? – Mark

+0

Что такое код для печати? может быть, что-то там отсутствует –

+0

ok Я меняю свой пост – CrazyDev

ответ

0

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

+0

нормально, но я не хочу видеть представление в своем приложении, где я могу поместить это представление, где я напишу свой текст в формате? – CrazyDev

+0

Я не понимаю, вы можете объяснить свой ответ? – CrazyDev

+0

Возможно, я ошибаюсь, но я не думаю, что в окно должно быть добавлено представление для печати. Взгляните на UIViewPrintFormatter. – Caleb