Si un utilisateur imprime un rapport, et ils se trouvent à l'aide de la imprimante Microsoft XPS strong>, je voudrais par défaut le nom du fichier à quelque chose de significatif. i aurait pensé que l'imprimante XPS prendrait le nom du travail d'impression, et l'utiliser comme nom de fichier par défaut - mais il n'a pas p> y at-il un autre, programatic, chemin par défaut le nom du fichier XPS généré pendant l'impression. à cette imprimante? Je pensais qu'il pourrait y avoir quelque chose comme: p> Automatiser Excel pour créer une feuille de calcul: p>
Exemple h2>
asdfadf.xps
3 Réponses :
L'écrivain de document Microsoft XPS (MXDW) générera un chemin de fichier de sortie sans demander à l'utilisateur si l'application imprime définit LpszOutput dans Docinfo . P>
Si vous n'avez pas accès au code de l'application, une autre option consiste à créer un pilote XPS qui génère un chemin de fichier même lorsque LpszOutput n'a pas été défini. Le kit de pilotes Windows (WDK) est l'endroit idéal pour démarrer. p>
Pour plus de détails et de liens, voir POST . P>
Win2PDF 7 peut enregistrer sous XPS et faire par défaut au nom du travail d'impression. Si vous ne voulez pas utiliser le travail d'impression comme nom d'affichage dans la boîte de dialogue Enregistrer Fichier, vous pouvez modifier le nom du fichier par défaut en définissant une valeur de registre nommée " PDFTITTLE ". P>
Vous pouvez également définir le fichier de sortie sans vous demander l'utilisation de la zone LpszOutput de DOCINFO ou en définissant un paramètre de registre nommé " PDFFLENName a> "comme décrit dans la documentation Win2PDF. Le fichier sera créé au format XPS si le nom du fichier contient une extension .XPS. P>
Seulement si je peux convaincre Microsoft de expédier Win2PDF avec Windows.
Eh bien, Voici un moyen simple (au moins dans mon cas):
(monprintpage hérite du système.Drawing.printing.printdocument) P>
'save xps results
'is the XPS printer installed?
Dim myXPSfound As Boolean = False
For Each s As String In System.Drawing.Printing.PrinterSettings.InstalledPrinters
If s.Contains("XPS") Then
myXPSfound = True
Exit For
End If
Next
If myXPSfound Then
'Manual settings of the XPS printerSettings
Dim myXPSPrinterSettings As New Drawing.Printing.PrinterSettings
myXPSPrinterSettings.Collate = False
myXPSPrinterSettings.Copies = 1
myXPSPrinterSettings.Duplex = Drawing.Printing.Duplex.Simplex
myXPSPrinterSettings.FromPage = 0
myXPSPrinterSettings.MaximumPage = 9999
myXPSPrinterSettings.MinimumPage = 0
myXPSPrinterSettings.PrinterName = "Microsoft XPS Document Writer"
myXPSPrinterSettings.PrintRange = Drawing.Printing.PrintRange.AllPages
myXPSPrinterSettings.PrintToFile = True
myXPSPrinterSettings.ToPage = 1
myPrintPage.PrinterSettings = myXPSPrinterSettings
myPrintPage.PrinterSettings.PrintToFile = True
myPrintPage.PrinterSettings.PrintFileName = mytargetFileName & ".xps"
Try
myPrintPage.Print()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Error Printing the XPS File")
End Try
Else
MsgBox("The Microsoft XPS Writer was no found on this computer", MsgBoxStyle.Information, "Error Printing the XPS File")
End If
@PaththeFrog toute idée de la façon de faire cela dans C # et WPF`?
Non désolé. Je n'utilise que vb.