10
votes

Façon de par défaut le nom du fichier XPS généré?

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>

  • une clé de Registre li>
  • mémoire partagée li>
  • appel API comme SetDefaultXPSFilename () li>
  • les attributs étendus sur un travail d'impression li> Ul>

    Exemple h2>

    Automatiser Excel pour créer une feuille de calcul: p>

    asdfadf.xps
    


0 commentaires

3 Réponses :


2
votes

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 .

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.

Pour plus de détails et de liens, voir POST .


0 commentaires

0
votes

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 ".

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 "comme décrit dans la documentation Win2PDF. Le fichier sera créé au format XPS si le nom du fichier contient une extension .XPS.


1 commentaires

Seulement si je peux convaincre Microsoft de expédier Win2PDF avec Windows.



5
votes

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


2 commentaires

@PaththeFrog toute idée de la façon de faire cela dans C # et WPF`?


Non désolé. Je n'utilise que vb.