0

我有这个代码:

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];
4

1 回答 1

0

NSLog() 不是您应该依赖于格式化的东西。如果您希望文本在打印时以某种方式出现,您需要将其绘制到视图中。如果您希望视图在打印时与屏幕上的外观不同,请执行-drawRect:forViewPrintFormatter:绘制打印版本。

于 2011-07-28T13:04:51.317 回答