Utilisez les noms de fichiers ERP du presse-papiers Windows / Imprimante PDF
La situation initiale
Le fichier PDF à créer doit avoir un nom de fichier défini qui doit être compilé à partir des valeurs numéro de client et numéro de facture (ID client_numéro de facture.pdf). Dans la gestion des marchandises, il n'y a malheureusement aucun moyen d'ajouter des données d'impression ou similaires à un travail d'impression (via des caractères de contrôle comme c'est normal). Selon l'évaluation générale, attendre une extension correspondante du fabricant d'ERP est très irréaliste. Cependant, l'ERP peut fournir le nom de fichier souhaité dans le presse-papiers de Windows. Nous en profitons.
La solution
Notre imprimante PDF lira le nom de fichier souhaité dans le presse-papiers Windows et le prendra en compte. Nous utilisons pour cela le framework VBScript de l'imprimante PDF, qui peut être utilisé immédiatement après l'installation. Pour accéder au nom de fichier PDF souhaité, nous accédons ici au presse-papiers Windows lorsque le PDF est imprimé à partir de l'ERP, puis l'enregistrons comme souhaité dans un fichier PDF basé sur le modèle Customer ID_InvoiceNo.pdf.
Pour cela, nous utilisons le code de macro VBScript suivant :
Function ClipBoard(input) If IsNull(input) Then ClipBoard = CreateObject("HTMLFile").parentWindow.clipboardData.getData("Text") If IsNull(ClipBoard) Then ClipBoard = "" Else CreateObject("WScript.Shell").Run _ "mshta.exe javascript:eval(""document.parentWindow.clipboardData.setData('text','" _ & Replace(Replace(Replace(input, "'", "\\u0027"), """","\\u0022"),Chr(13),"\\r\\n") & "');window.close()"")", _ 0,True End If End Function
Créer une balise de macro de fonction VBS individuelle
Nous utilisons le code macro suivant dans la configuration de l'imprimante 7-PDF.
<vbs:clipboard(null)>
La capture d'écran ci-dessous montre les étapes nécessaires en détail (il suffit de cliquer pour agrandir). Cette MacroTag appelle la fonction VBS créée "clipboard" (de clipboard.vbs) et la valeur renvoyée de cette fonction remplace l'entrée MacroTag individuelle par la valeur de retour réelle. Comme la valeur de retour est le nom du fichier précédemment copié dans le presse-papiers, la boîte de dialogue d'impression affiche alors également ce nom de fichier et le PDF à créer peut être enregistré à volonté. L'exemple pourrait bien sûr être étendu pour inclure d'autres données du presse-papiers (par exemple, inclure le chemin complet du répertoire ou d'autres données). Mais cette solution est suffisante pour la situation initiale décrite ci-dessus.
La figure ci-dessous montre les étapes concrètes :
Télécharger un exemple de fichier
Vous pouvez télécharger l'exemple de code. Après le déballage, veuillez déplacer le fichier de macro VBS qu'il contient dans le dossier des macros de l'imprimante PDF comme décrit ci-dessus. Vous pouvez également définir un répertoire différent avec le paramètre MacroDir.
Téléchargements
appendice | taille |
---|---|
Télécharger l'exemple de code | 439 Bytes |