Impression NSLandscapeOrientation

RocouRocou Membre
00:05 modifié dans API AppKit #1
J'ai un petit souci au niveau de l'orientation de ma page pour l'impression.

J'ai un bouton "imprimer" qui déclenche une IBAction que voici:

- (IBAction)printListing:(id)sender&nbsp;  <br />{<br />	Listing *v = [[Listing alloc] initWithListing:maListeEvenDemain];<br />	<br />&nbsp; 	NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];<br />	NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:v&nbsp; printInfo:printInfo];<br />	[printInfo setOrientation:NSLandscapeOrientation];<br />	[printOp setShowsPrintPanel:YES];<br />	[printOp setShowsProgressPanel:YES];<br />	[printInfo setHorizontallyCentered:NO];<br />&nbsp; &nbsp; [printInfo setVerticallyCentered:NO];<br />&nbsp; &nbsp; [printInfo setTopMargin:20.0];<br />&nbsp; &nbsp; [printInfo setBottomMargin:18.0];<br />&nbsp; &nbsp; [printInfo setLeftMargin:10.0];<br />&nbsp; &nbsp; [printInfo setRightMargin:10.0];<br />&nbsp; &nbsp; [[printInfo dictionary] setObject:[NSNumber numberWithFloat:0.75] forKey:NSPrintScalingFactor];<br />	<br />	<br />	<br />&nbsp;  	[printOp runOperation];<br />	<br />	[v release];<br />	<br />}<br />


Rien que du classique...
Pourtant, systématiquement la première fois que je clique sur mon bouton, j'obtiens une impression en mode portrait. Il faut que je l'annule et que je recommence pour avoir mon mode paysage.

Réponses

  • AliGatorAliGator Membre, Modérateur
    00:05 modifié #2
    Je n'ai jamais essayé les NSPrintInfo & co, mais rien qu'à  la lecture de mon code il y a un truc qui me semble bizarre : tu crées ta NSPrintOperation en utilisant ton singleton NSPrintInfo tout juste récupéré (donc créé la toute première fois)... et c'est seulement après que tu modifies le printInfo en question pour lui modifier ses paramères de marges et d'orientation.

    Donc en fait ça me parait logique, la première fois tu récupères le sharedPrintInfo (singleton dont tu accèdes pour la première fois donc qui va se créer tout fraà®chement tout neuf avec les valeurs par défaut) et utilises ces valeurs (par défaut, donc) pour ta NSPrintOperation.
    Ce n'est que la 2e fois que, tu récupères le sharedPrintInfo (et comme c'est un singleton tu récupères le même que celui précédemment créé la première fois, donc que tu avais fini par configurer, même si c'était trop tard pour ta première impression) et donc un NSPrintInfo correctement configuré (... lors de ton 1er appel), puis l'utilises. Et le reconfigures encore (pour rien puisque pour le coup il l'était déjà , mais bon c'est pas grave... en tout cas il sera prêt pour le... prochain coup)

    Conclusion : il suffit j'imagine que tu fasses tous tes "[printInfo set...]" AVANT la création du NSPrintOperation l'utilisant.
  • RocouRocou Membre
    00:05 modifié #3
    dans 1252425506:

    Conclusion : il suffit j'imagine que tu fasses tous tes "[printInfo set...]" AVANT la création du NSPrintOperation l'utilisant.


    Arg! Bien sûr, tu as raison!
    Mais quel idiot  :p

    Merci beaucoup!
Connectez-vous ou Inscrivez-vous pour répondre.