2016-05-09 9 views
0

macosxのデスクトップアプリケーションから印刷する際に問題があります。 印刷に使用するIBファイルにビューを作成しました。 はその後、私のアクションを呼び出すことmacosxに印刷する:nstableviewを印刷するにはどうすればよいですか

printOp = [NSPrintOperation printOperationWithView:self.myPrintView printInfo: printInfo]; 

印刷NSView throu。

ちょうどその前に、私はビューに自分のデータを構築するための簡単な関数

[self displayPrintingData]; 

を使用

-(void)displayPrintingData { 

    //header 
    self.headerData.alignment = NSTextAlignmentCenter; 
    self.headerData.string = @"bla bla bla"; 
    self.footerData.string = @"ribla ribla ribla"; 

    [self.printTableView reloadData]; 
} 

私の問題は、私が使用して(挿入されたとして、私は多くの行として印刷する必要があるということです異なるnsviewと異なるnstableview)。 NSTableViewを短くまたは長くするという目標には、どのようにして到達できますか?これは複数の行を動的に印刷する最良の方法ですか?

おかげさまで、ありがとうございました!!!!!

歓声

+0

テーブルビューは自動的にリサイズされます。NSTableViewのサブクラスは次のとおりです。ページ上で囲みスクロールビューをできるだけ大きくします。 – Willeke

+0

私はあなたが言ったことを得るために確信していません...あなたはtableviewのスクロールビューを意味しましたか?それは囲まれていませんが、viceversaです:scrollview囲むtableview ...どのように私は行の最大数を予測できますか?印刷するページ数を予測するにはどうすればよいですか?それは依存して...あなたは少し良く説明できますか? – Boka70

+0

あなたは複数のページについて言及していません。 [Mac向け印刷プログラミングガイド](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Printing/osxp_aboutprinting/osxp_aboutprt.html#//apple_ref/doc/uid/10000083-SW1)をお読みになりましたか? )? – Willeke

答えて

1

例:

NSPrintOperation *printOperation = [NSPrintOperation printOperationWithView:self.printTableView]; 
NSPrintInfo *printInfo = printOperation.printInfo; 
[printInfo.dictionary setObject:@YES forKey:NSPrintHeaderAndFooter]; 
[printOperation runOperation]; 

注:ビューはテーブルビューです。

- (NSAttributedString *)pageHeader 
{ 
    return [[NSAttributedString alloc] initWithString:@"bla bla bla"]; 
} 

- (NSAttributedString *)pageFooter 
{ 
    return [[NSAttributedString alloc] initWithString:@"ribla ribla ribla"]; 
} 
+0

Thiaは本当にハーフフル!!ありがとうございます...もう1つの質問:2つのNSTableViewを印刷する必要がある場合は?どのようにビューを設定しますか? – Boka70

+0

データを1つのテーブルビューに入れることはできませんか?複数のビューを印刷する場合は、それらをスーパービューに入れて、このスーパービューを印刷します。スクロールビューは、スクロールや空白なしでテーブルビューに収まる大きさにしてください。 – Willeke

関連する問題