Suppression de la boîte de dialogue Enregistrer sous sur Microsoft XPS Document Writer lors de la conversion de GDI en XPS

StackOverflow https://stackoverflow.com/questions/810550

  •  03-07-2019
  •  | 
  •  

Question

Dans son entrée de blog Impression de documents sur Microsoft XPS Document Writer sans interaction de l'utilisateur , déclare Feng Yuan

  

Si vous imprimez à partir de vos propres applications, il est facile de spécifier MXDW en tant que pilote d'imprimante et de fournir un nom de fichier pour le document XPS à enregistrer dans

.

Quelqu'un peut-il expliquer comment faire cela et fournir un exemple de code?

Le principal problème que je rencontre est la suppression de la boîte de dialogue Enregistrer sous qui apparaît dans le document Microsoft XPS Document Writer. Je suis répugné à recourir au piratage de l'interface utilisateur, comme Yuan le fait dans ses fonctions.

Actuellement, mon application effectue des appels de dessin GDI sur le contexte du périphérique, quelle que soit l'imprimante que l'utilisateur souhaite utiliser. Je peux très bien faire ces appels sur XPS Document Writer, mais lorsque vient le temps de terminer l'impression, XPS Writer ouvre la boîte de dialogue Enregistrer sous.

Était-ce utile?

La solution

En effet, le même auteur fournit la réponse Impression sur Microsoft XPS Document Writer sans afficher la boîte de dialogue Enregistrer le fichier . La solution consiste à imprimer dans un fichier à l'aide de l'imprimante Microsoft XPS Document Writer.

Autres conseils

Et si vous souhaitez éviter de toucher le système de fichiers avec votre document XPS, Shahed Kahn donne un exemple de code sous la forme Chargement de fichiers Xps à partir de MemoryStream .

Voici ce qui fonctionne pour moi:

  With Me.PrintDocument
     With .PrinterSettings
        .PrinterName = "Microsoft XPS Document Writer"
        .PrintToFile = True
        .PrintFileName = "c:\test.xps"
     End With
    .Print()
  End With

Pour autant que je sache, ceci est non documenté. Essayez-le et vous n'obtiendrez pas la redoutable boîte de dialogue Enregistrer sous. Au lieu de cela, vous obtenez un fichier XPS vierge généré par MXDW (c: \ test.xps).

Il suffit de supprimer et de réinstaller Microsoft XPS Document Writer, en suivant les étapes ci-dessous lors de la réinstallation.

Cliquez sur Démarrer - Panneau de configuration - Ajouter une nouvelle imprimante. Choisissez ensuite Imprimante locale et Créer un nouveau port. Sélectionnez Port local dans la liste déroulante. La boîte de dialogue demandant un nom de port apparaîtra. Pour que notre pilote XPS imprime dans le fichier spécifié sans demander à un utilisateur un emplacement, écrivez le chemin complet de ce fichier de sortie. Ce fichier n'a pas besoin d'exister pour le moment (quelque chose comme c: \ mydriveroutput.xps par exemple).

Voir ce lien pour plus de détails: https: / /kibitzercz.blogspot.in/2012/01/building-and-using-xpsdrvsmpl-under.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top