2011-07-28 6 views
0

は、私はこのコードを持っている:このコードでIOS:NSStringのフォーマット

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

を私は2つの列を持つ私の文字列のテキストの書式を持っていますが、私は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