2016-05-09 5 views
0

drucken Ich habe ein Problem beim Drucken von meiner Desktop-Anwendung auf MacOSX. Ich habe eine Ansicht in meiner IB-Datei erstellt, die ich zum Drucken verwende. Dann nennen meine Aktion, die throuDrucken auf Macosx: Was ist der beste Weg, um eine nstableview

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

Druck der NSView.

Kurz vor, dass ich eine einfache Funktion

[self displayPrintingData]; 

auf meine Daten auf der Ansicht aufbauen

-(void)displayPrintingData { 

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

    [self.printTableView reloadData]; 
} 

Mein Problem ist, dass ich so viele Zeilen drucken muß, wie ich eingefügt (mit verschiedene nsview und verschiedene nstableview). Wie kann ich das Ziel erreichen, mein NSTableView zu verkürzen oder zu verlängern? Ist dies der beste Weg, mehrere Zeilen dynamisch zu drucken?

danke im voraus für ihre vorschläge !!!!!

prost

+0

Die Tabellenansicht wird automatisch in der Größe geändert. Machen Sie die umschließende Bildlaufansicht auf der Seite so groß wie möglich. – Willeke

+0

Ich bin mir nicht sicher, was du gesagt hast ... du meintest scrollview von tableview? Es ist nicht eingeschlossen, aber umgekehrt: scrollview umschließt Tabellenansicht ... Wie kann ich die maximale Anzahl von Zeilen vorhersagen? Wie kann ich vorhersagen, wie viele Seiten ich drucken muss? Es kommt darauf an ... Können Sie es etwas besser erklären? – Boka70

+0

Sie haben nicht mehrere Seiten erwähnt. Haben Sie [Printing Programming Guide for Mac] gelesen? (Https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Printing/osxp_aboutprinting/osxp_aboutprt.html#//apple_ref/doc/uid/10000083-SW1) – Willeke

Antwort

1

Beispiel:

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

Hinweis: Die Ansicht ist die Tableview. Dies ist eine Unterklasse von NSTableView mit Methoden:

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

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

Thia ist wirklich halfvoll !!!! Vielen Dank ... Nur noch eine Frage: Falls Sie zwei NSTableView drucken müssen? Wie würdest du die Aussicht aufstellen? – Boka70

+0

Können Sie die Daten nicht in eine Tabellenansicht einfügen? Wenn Sie mehrere Ansichten drucken möchten, fügen Sie sie in eine Übersicht ein und drucken Sie diese Vorschau aus. Machen Sie den Bildlauf so groß, dass er in die Tabellenansicht passt, ohne dass Bildlauf oder Leerraum angezeigt wird. – Willeke