Forum Programmation.c# Impression portable

Posté par  .
Étiquettes : aucune
0
21
juin
2005
Voilà, je fais un petit programme en C#/GTK# qui est censé être portable.
Seulement là j'ai un souci en ce qui concerne l'impression.
Je ne vois pas comment faire en sorte que ce soit portable.

J'aurai voulu savoir comment vous avez contourné ce problème dans vos applications (meme si celles-ci sont codées dans un langage autre que le C# ;)

Sinon j'avais pensé faire une classe spécifique linux utilisant gnome-print et une autre spécifique windows qui utiliserait les System.Drawing.* ainsi que les Forms.

Sinon question subsidiaire: Comment faire imprimer a gnome-print directement des fichiers au format Postscript, car si je pouvais faire imprimer des fichiers postscript directement à Gnome, je devrai pouvoir le faire aussi facilement sous windows, ce qui me permettrait de simplement générer un ps et lancer l'impression.

Sinon j'avais pensé utiliser un simple fichier xml pour décrire les documents que je devrais imprimer, et ensuite mes classes sous gnome et sous win parseraient ce fichier et interprêterait les différentes instructions qui s'y trouveraient. Le problème c'est que ça me semble être beaucoup de boulot pour pas grand chose.

Voili, voilou, en gros je suis preneur de toutes remarques que vous pourriez faire en ce qui concerne l'impression de façon portable, ou au moins de façon à ne pas avoir à réinventer la roue :D

Merci
  • # wxWidgets

    Posté par  . Évalué à 1.

    J'ai jamais essayé, mais je sais que ça existe dans wxWidgets :


    wxPrintout
    This class encapsulates the functionality of printing out an application document. A new class must be derived and members overridden to respond to calls such as OnPrintPage and HasPage. Instances of this class are passed to wxPrinter::Print or a wxPrintPreview object to initiate printing or previewing.



    wxPrinter
    This class represents the Windows or PostScript printer, and is the vehicle through which printing may be launched by an application. Printing can also be achieved through using of lower functions and classes, but this and associated classes provide a more convenient and general method of printing.


    En ce qui concerne le C#, il existe wx.NET(a C# binding for .NET/Mono).
    http://wxnet.sourceforge.net/(...)
    • [^] # Re: wxWidgets

      Posté par  . Évalué à 1.

      Oui merci, ça j'y avais déjà pensé, mais vu que toute mon application a été faite en GTK# je ne me sens pas de tout recoder pour l'adapter à wxWindows, enfin pas pour le moment en tout cas ^^
      • [^] # Re: wxWidgets

        Posté par  . Évalué à 2.

        Ce n'est pas parce que tu utilises wxWidgets pour un élément que tu dois l'utiliser pour toute ton application.
        Je pense que tu peux l'utiliser pour l'impression et garder le reste en GTK#

        D'ailleurs, wxWidgets est découpé en plusieurs projets.
        wxBase ne contient que des choses utilisables sans interface graphique. Cependant, pour une raison que je ne connais pas, l'impression est dans la partie core.
        • [^] # Re: wxWidgets

          Posté par  . Évalué à 1.

          Meme si je n'inclue qu'un petit morceau de wxWidgets ça fait tout de même pas mal de dépendances pour une petite application.
          Mais je n'ai pas encore rejeté cette solution, car c'est l'une des meilleures solutions que j'ai pour le moment.

          Le top serait vraiment de pouvoir imprimer un buffer dans lequel on aurait générer du texte au format Postcript, voir pdf (ou tout autre langage de description de texte) et de faire un simple Print(buffer). Si au moins on pouvait utiliser le même objet à imprimer que ce soit sous windows ou linux, je m'en arrangerai, mais sous Linux il faut créer un objet PrintContext dans lequel on va "écrire" le texte à imprimer et sous windows il faut utiliser l'objet PrintDocument. Enfin le pire dans l'histoire, c'est que PrintDocument est implémenté dans mono ! Mais après, qu'en faire ? ^^
          Ou alors faudrait développer une class capable de caster un PrintContext en PrintDocument et vice-versa, mais voilà le travail :s

          Bon en ecrivant ça j'ai pensé à quelquechose, est-il possible de convertir un objet PrintDocument en image, comme ça sous linux je n'aurai qu'à faire ça et imprimer l'image. Apparemment oui, donc je vais chercher un peu plus dans ce sens pour voir si ça peut le faire.

          Sinon je me suis même demander si j'allais pas simplement faire un appelle à lpr sous linux et un appel kernel sous windows en passant en parametre le fichier à imprimer. C'est assez porc, d'autant plus que ça m'obligerait à faire des accès disques pour écrire le fichier à imprimer mais ça me permettrait d'avoir une application utilisable rapidement...
  • # portable way to print

    Posté par  . Évalué à 4.

    c'est le titre d'une discussion qui a eu lieu sur la liste mono en décembre 2004. je pense que tu y trouveras des éléments intéressants.

    http://galactus.ximian.com/pipermail/mono-list/2004-December/025068(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.