Benutzerabhängige Drucker verwenden

Dieses Skript zeigt, wie pro Benutzer ein anderer Drucker verwendet werden kann. In der GUI kann immer nur ein Drucker eingestellt werden.

Konfiguration

  • Dieses Skript funktioniert bei allen Exportern, die ein Dokument generieren (NICHT Skript-Exporter)

  • Das Skript wird als AfterLoadData ausgeführt

Ideen

  • Es wird zur Laufzeit die Konfiguration der eigenen Ausgabe verändert, ohne dass diese in der JSON-Datei gespeichert wird

  • Es lohnt sich evtl. das Skript direkt im Wurzelverzeichnis von PRINT+PLUS abzulegen, sodass es von mehreren Ausgabeformaten gemeinsam genutzt werden kann

Tipps

  • Um sicherzugehen, kann man den Drucker einmal über die PRINT+PLUS Oberfläche statisch auswählen. Dann die Schreibweise in der JSON-Datei der Ausgabe nachschauen.

Skript

// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
	using System.Collections.Generic;
	using Ruthardt.CobraBase.Functions.Access.Ado;
	using Ruthardt.PrintPlus.Model.Interfaces;
	using Ruthardt.PrintPlus.Model.Container;

	public class Verschluesseln : IScriptAction
	{
		public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
		{
			switch (printContext.CobraContext.UserShortname)
			{
				case "Benutzer1":
					printContext.Config.Printer1 = new PrinterContainer() { Name = "HP Drucker 123" };
					break;
				case "Benutzer2":
					printContext.Config.Printer1 = new PrinterContainer() { Name = "HP Drucker 321" };
					break;
				case "Benutzer3":
					// bei Netzwerkdruckern die ein \ im Namen haben 
					// muss in C# dies durch das vorgestellt @ gekennzeichnet werden
					// Alternativ sind die \ zu verdoppeln
					// Variante 1:
					printContext.Config.Printer1 = new PrinterContainer() { Name = @"\\server\drucker" };
					// Variante 2:
					printContext.Config.Printer1 = new PrinterContainer() { Name = "\\\\server\\drucker" };					break;					
			}
		}
	}
}

Last updated