IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET][2.0] Imprimer sur un papier aux dimensions personnalisées


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut [VB.NET][2.0] Imprimer sur un papier aux dimensions personnalisées
    Bonjour,

    J'ai conçu une classe qui hérite de PrintDocument. Le document qui sera généré par cette classe est une fiche de dimensions personnalisées, qui s'imprimera sur du papier personnalisé.

    Pour spécifier le format personnalisé, dans le code de la classe (dans le constructeur ou ailleurs), voici ce que je spécifie:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim customPaperSize As New Printing.PaperSize("Perso", 800, 1000)

    Je cherche à définir (dans Me.PrinterSettings.quelquechose) le le format personnalisé que j'ai défini, afin qu'il soit automatiquement envoyé à l'imprimante. Le code mentionné sur MSDN ne montre qu'une façon d'ajouter à la collection PaperSizes le format personnalisé, afin qu'il soit dans un ComboBox, mais rien ne spécifie comment le choisir de façon «non interactive» (c'est-à-dire dans le code, sans intervention de l'usager).

    Je suis sûre que je brûle, mais je ne sais pas où regarder, exactement. Quelqu'un aurait-il une piste à me suggérer? D'avance, merci beaucoup, car je suis bloquée...

    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  2. #2
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    Pardon pour le UP, mais je voudrais savoir si la taille du papier doit être spécifiée du côté de la boîte de dialogue d'impression ou encore dans le code même de ma classe. Merci à l'avance,
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  3. #3
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    je n'ai jamais regardé le problème en VB.NET mais en VB6 il fallait passer par l'API AddForm pour créer un format de papier sur l'imprimante

  4. #4
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    Merci pour ta suggestion, bidou.

    Bizarrement, ils disent que dans .NET 2.0 ils ont ajouté les classes PaperSizeCollection et autres, je crois que ça remplace le AddForm. Si tel est le cas, il faudra que je vois si je suis obligée d'ajouter ce format à la liste déjà existante. Mais dans ce cas précis, je me demande comment formater mon document (les marges, etc.) pour qu'il ait exactement les mêmes paramètres.

    Je vais voir si ça m'avance...
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  5. #5
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    Après avoir fait une assez longue recherche sur Google, je suis tombée sur cette ligne de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.DefaultPageSettings.PaperSize.Kind = Printing.PaperKind.Custom
    Mais j'ai un message d'erreur me disant que cette propriété est ReadOnly. Si j'ai bien compris, la personne doit sélectionner «Custom» ou «Personnalisé» comme type de papier. Mais je cherche à savoir s'il est possible de «simuler» la sélection du papier «Custom» et de définir les dimensions dans mon code, afin que cette ligne puisse fonctionner ou encore que je fasse un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If Me.DefaultPageSettings.PaperSize.Kind = Printing.PaperKind.Custom Then
      Me.DefaultPageSettings.PaperSize = customPaperSize
      ' format que j'ai défini ailleurs dans le code
    End If
    Je sens que je m'approche du but...??
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  6. #6
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    On dirait que ceci fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.DefaultPageSettings.PaperSize = New Printing.PaperSize("8x10", 800, 1000)
    ...du moins sur une imprimante laser couleur HP et les imprimantes à jet d'encre de la boîte.

    EDIT - ça fonctionne bien. Je mets Résolu.
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Imprimer des Text sur un papier A4
    Par kortobi dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 14/10/2014, 05h54
  2. [XL-2007] Tri étendu par ordre alphabétique sur un tableau aux dimensions dynamiques
    Par atk_49 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/03/2014, 15h03
  3. Réponses: 4
    Dernier message: 27/08/2011, 20h06
  4. possible d'imprimer sur du papier
    Par mathiew dans le forum Débuter
    Réponses: 1
    Dernier message: 21/05/2009, 23h37
  5. Imprimé sur des papiers de taille spéciale
    Par Mirna dans le forum MFC
    Réponses: 1
    Dernier message: 31/10/2006, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo