imprimer une NSVue : problème avec les ombres
Fred20
Membre
Bonjour
Je souhaite imprimer une NSView (une NSScrollView exactement) contenue dans une NSWindowControleur. Cette NSScrollView contient entre autre une NSBox sur laquelle j'ai dessiné l'ombre via l'IB, ainsi qu'une couleur de fond via
[scrollView setWantsLayer:YES];
[scrollView setBackgroundColor:[NSColor redColor]];
[scrollView setDrawsBackground:YES];
Cependant, l'impression de ma scrollView ne m'affiche ni cette couleur de fond, ni l'ombre de ma box. Voici mon code :
-(IBAction)actionPrint:(id)sender
{
NSPrintInfo *printInfo = [NSPrintInfo sharedPrintInfo];
[printInfo setTopMargin:0];
[printInfo setBottomMargin:0];
[printInfo setLeftMargin:0];
[printInfo setRightMargin:0];
[printInfo setScalingFactor:.85];
[scrollView print: sender];
}
Qu'est ce qu'il me manque ??
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
D'expérience, l'impression de NSViews standard donne des résultats assez variables.
De toute façon, c'est facile à coder mais c'est moche et ça gère très mal la mise en page. Tu devras faire toi-même le dessin à un moment où un autre.
AIe.... bon merci quand même
Bien j'ai essayé ça mais ça me donne une erreur au moment du print :
L'erreur est la suivante : Assertion failed: (s->stack->next != NULL), function CGGStackRestore, file Context/CGGStack.c, line 77.
Qu'est ce qui c'est passé et comment y remédier ?
Merci d'avance
Salut,
Chez moi le code marche,
tu utilises CGContextSaveGState,CGContextRestoreGState dans ton code ?
Pas du tout
Je m'en sert comment?
Dans la doc de NSView, je n'ai rien vue de tel ...
Je demandais au cas ou, l'erreur ressemble a une erreur de pile
fais nous un zip avec ton projet, si tu peux
Je viens de faire un mini projet et oui, en effet, ça marche ici. Bon je vais regarder cela de plus près dans mon code
Ceci étant, l'ombre de ma box n'apparait toujours pas
Comment dois je faire pour la faire apparaitre ???
Voici le zip
Bonjour,
Je penses que le problême est résolu (shadow affiché et effet du texte pateux enlevé)
J'ai dérivé l'affichage du texte pour quand tu imprimes cela enleve l'antiliasing.
Dis nous si c'est ok
Merci Devulder de ton investissement
Ton système est ingénieux : j'ai cette fois ci l'ombre qui apparait mais le texte n'est encore pas très joli. Voila ce que j'ai chez moi lorsque j'enregistre l'impression en pdf :