Impression et marges
muqaddar
Administrateur
Béjir,
Je crée une vue pour une impression, mais les marges par défaut (quel que soit le format de papier sélectionné) sont très grandes. Un truc du genre 4 cm que ce soti du A4 ou du Letter US... Ce qui doit correspondre à un certain nombre de points... définis dans les marges...
Enfin, je trouve ça bizarre... faut-il les forcer par le code avec setMargin ? Car peu de monde va changer les marges en général dans la boà®te de dialogue custom print...
Me fais-je comprendre ? ???
Je crée une vue pour une impression, mais les marges par défaut (quel que soit le format de papier sélectionné) sont très grandes. Un truc du genre 4 cm que ce soti du A4 ou du Letter US... Ce qui doit correspondre à un certain nombre de points... définis dans les marges...
Enfin, je trouve ça bizarre... faut-il les forcer par le code avec setMargin ? Car peu de monde va changer les marges en général dans la boà®te de dialogue custom print...
Me fais-je comprendre ? ???
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
C'est juste que je ne comprenais pas pourquoi les marges par défaut sont si grandes.
Je n'arrive pas à me débarasser moi aussi des ces marges trop grandes. J'ai essayé ceci :
Mais ça ne change rien :-\\
Une idée ???
Typiquement, l'ordre est :
1 - je récupère le sharedPrinterInfo.
2 - je modifie les marges (via set...Margin:).
3 - j'initialise l'impression par +[NSPrintOperation printOperationWithView:] (cela affiche le dialogue d'impression).
4 - je déclenche l'impression par -[NSPrintOperation runOperation].
Je n'ai jamais eu de problème de marge (même quand j'utilise un leftMargin à 0 : dans ce cas, mon impression est tronquée sur son côté gauche).
Cet ordre des opérations est celui recommandé par Apple.
Est-ce le même que tu effectues ?
.
- retire [printOpView setShowPanels:YES];
- remplace printOpView = [NSPrintOperation printOperationWithView:myPrintView printInfo:printInfo];
par printOpView = [NSPrintOperation printOperationWithView:myPrintView];
- met 0 à setLeftMargin (pour test)
Chez moi, ça marche comme cela, donc il n'y a pas de raison pour que chez toi ça diffère.
.
Quand je fais "imprimer" par le menu, j'ai les marges d'origine (énormes !). Je lance ensuite l'impression en cliquant sur le bouton imprimer de ma fenêtre (pas par le menu), et là ça marche, normal puisque c'est directement relié à :
Enfin quand je repasse par le menu "imprimer" ça fonctionne cette fois-ci correctement.
Vous avez une explication j'en suis sûr mais laquelle ?
Faut-il initialiser l'impression au chargement de l'appli ?
Merci pour vos lumières
au chargement de l'appli, un NSPrinterInfo par défaut est créé.
Dans ce printerInfo, les marges sont énormes.
En imprimant par le menu, tu ne fais que demander le lancement de l'impression (qui utilise le pinterInfo par défaut, avec les grandes marges).
Ensuite, dans la méthode d'action de ton bouton, tu modifies les marges du printerInfo, donc toutes les impressions suivantes seront faites avec les nouvelles marges, et quelques soit l'origine de la demande (bouton ou menu).
Conclusion, si tu modifies le printerInfo juste après la fin du lancement de l'appli, tu devrais avoir les marges comme tu le veux.
.
Merci Bru