none
[C#VS2005] Comment enregistrer un PrintDocument sous forme de fichier .txt ? RRS feed

  • Question

  • Bonjour,

    J'ai créé une classe qui élabore un formulaire à l'aide de Graphics et de la méthode DrawString(). Pour ce faire, j'ai utilisé un PrintDocument. Jusque là, pas de problème. Il s'imprime très correctement. Toutefois, j'aimerais pouvoir enregistrer le travail élaboré sous forme de fichier '.txt'. Pourriez-vous me dire la direction à prendre pour obtenir cela ?

    D'avance merci.

    dimanche 9 décembre 2007 11:01

Réponses

  •  

    Pas de problème, les deux sont possibles Smile Le téléchargement pour une version devrait fonctionner pour Visual C# Express ou Visual VB Express

     

    Différences fonctionnelles entre le contrôle de serveur Web et le contrôle Windows Forms

    Le type de contrôle utilisé détermine le format de présentation par défaut d'un rapport ainsi que les caractéristiques visuelles de la barre d'outils. Le contrôle de serveur Web utilise la mise en forme HTML pour afficher un rapport, tandis que le contrôle Windows Form recourt à l'interface GDI (Graphical Device Interface) pour fournir une présentation visuelle cohérente avec les styles de l'interface utilisateur Windows. Les deux versions du contrôle ReportViewer fournissent pratiquement les mêmes fonctionnalités. Toutefois, elles diffèrent dans le traitement et le déploiement des rapports.

    lundi 10 décembre 2007 14:43

Toutes les réponses

  • Bonjour,

    A ma connaissance il n'y a pas de moyen de transformer une image en texte. Ce que vous pouvez faire, c'est ajouter une méthode à votre classe, ou surcharger la méthode ToString, qui renvoi une chaîne correspondant à votre formulaire et ses données.

    Par contre vous devrez gérer 2 fois la logique de mise en page, une fois graphiquement et une fois textuellement.

     

    Guillaume

     

    lundi 10 décembre 2007 05:55
  • Merci pour votre réponse. Je perçois assez bien la logique à adopter pour obtenir ce que je désire. Toutefois, si j'ai utilisé GDI pour la mise en page graphique, c'est aussi parce je ne vois pas très bien comment l'obtenir "textuellement". Comment obtenir un rectangle textuellement ? Avec la répétition de l'underscore ?

    lundi 10 décembre 2007 11:00
  • Bonjour,

    Je pense que pour la version textuelle de votre formulaire, vous devriez faire un version light de votre design. Donc peut être ne pas avoir de rectangle mais juste des zones les une en dessous des autres. Tout dépend de votre formulaire mais un bon design graphique n'est pas forcement un bon design textuelle.

     

    Guillaume

    lundi 10 décembre 2007 11:47
  • Bonjour,

     

    Pourquoi ne pas utiliser les composants de reporting prévus à cet effet? Dans ce cas, cela éviterait de toucher à GDI+ qui est assez gourmand pour en fait ne faire que du reporting.

     

    D'où proviennent les valeurs? Peut-on imaginer soit générer le .txt à la volée à partir d'une base de données (si ce n'est qu'un texte, il s'agit des mêmes informations qui sont ajoutées dans votre image)?

     

    Didier

    lundi 10 décembre 2007 12:45
  • Bonjour Didier,

    Les valeurs proviennent évidemment de la base de données. En fait, cette classe construit d'abord le formulaire graphique (qui est en fait une facture) et réserve certains champs qui sont complètés par la suite avant d'envoyer le tout à l'impression.

    Quant au reporting, je n'ai rien trouvé dans Visual Studio 2005 (version express) qui me permette de créer un rapport (tel que Crystal Report par exemple).

    lundi 10 décembre 2007 14:18
  • Sur la page suivante http://msdn2.microsoft.com/fr-fr/express/aa975050.aspx tu trouveras un paragraphe nommé
    "Complément de création de rapports pour Microsoft Visual Web Developer 2005 Express".
     
    Cela permet d'avoir le composant ReportViewer qui n'est effectivement pas de base dans les versions express car initialement les designers de report ne devaient pas y être présents.
     
    Lien direct vers le dowload: http://go.microsoft.com/fwlink/?LinkID=74666
    lundi 10 décembre 2007 14:28
  • Merci mais j'ai oublié de préciser que je travaille en WinForm et non en Web.

    lundi 10 décembre 2007 14:33
  •  

    Pas de problème, les deux sont possibles Smile Le téléchargement pour une version devrait fonctionner pour Visual C# Express ou Visual VB Express

     

    Différences fonctionnelles entre le contrôle de serveur Web et le contrôle Windows Forms

    Le type de contrôle utilisé détermine le format de présentation par défaut d'un rapport ainsi que les caractéristiques visuelles de la barre d'outils. Le contrôle de serveur Web utilise la mise en forme HTML pour afficher un rapport, tandis que le contrôle Windows Form recourt à l'interface GDI (Graphical Device Interface) pour fournir une présentation visuelle cohérente avec les styles de l'interface utilisateur Windows. Les deux versions du contrôle ReportViewer fournissent pratiquement les mêmes fonctionnalités. Toutefois, elles diffèrent dans le traitement et le déploiement des rapports.

    lundi 10 décembre 2007 14:43
  • OK. Merci à tous. Je vais donc me diriger vers cette solution. Je ne manquerai pas de vous faire part des résultats.

    lundi 10 décembre 2007 14:54