Nachdem wir dank Krischan aus dem grafischen Editor Drucken können, wollte ich die Funktion auch im grafischen Editor haben.
Script laden und es erscheint ein neuer Menüpunkt im Seitennavigator:
PrintPages (1596 Downloads )
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;
public class PrintPages
{
[DeclareAction("PrintPages")]
public void PrintPagesVoid()
{
CommandLineInterpreter oCLI = new CommandLineInterpreter();
ActionCallingContext acc = new ActionCallingContext();
string strPages = string.Empty;
acc.AddParameter("TYPE", "PAGES");
oCLI.Execute("selectionset", acc);
acc.GetParameter("PAGES", ref strPages);
Progress oProgress = new Progress("SimpleProgress");
oProgress.SetAllowCancel(true);
oProgress.SetAskOnCancel(true);
oProgress.SetNeededSteps(3);
oProgress.SetTitle("Drucken");
oProgress.ShowImmediately();
foreach (string Page in strPages.Split(';'))
{
if (!oProgress.Canceled())
{
acc.AddParameter("PAGENAME", Page);
oCLI.Execute("print", acc);
}
else
{
break;
}
}
oProgress.EndPart(true);
return;
}
[DeclareMenu]
public void MenuFunction()
{
Eplan.EplApi.Gui.ContextMenu oMenu =
new Eplan.EplApi.Gui.ContextMenu();
Eplan.EplApi.Gui.ContextMenuLocation oLocation =
new Eplan.EplApi.Gui.ContextMenuLocation(
"PmPageObjectTreeDialog",
"1007"
);
oMenu.AddMenuItem(
oLocation,
"Seite(n) drucken",
"PrintPages",
true,
false
);
return;
}
}
Anstatt
ruft den Druckdialog noch auf, zum Auswählen des Druckers.
Gruß
Andy
Spitze! :D
Danke für das tolle Skript
und @HAndy für die Erweiterung
[…] Скрипт найден у Джонни https://www.suplanus.de/printpages/ […]
Hallo,
tolle Sachen macht ihr Hier!
Ich habe das Problem das, wenn ich mehrere Seiten auswähle und dann den Druck per rechtsklick auslöse, dass Druckfenster in Anzahl der ausgewählten Seiten geöffnet werden anstatt sinvollerweise einer. Denn nach dem Druck muss ich alle Fenster einzeln schließen.
Hat keiner dieses Problem?
Gruß der Becker
Hallo,
welche EPLAN-Version verwendest du?
Hast du diese Zeile im Script:
oCLI.Execute(“print”, acc);
Hallo,
wenn der Drucken-Dialog angezeigt werden soll, dann reicht folgendes Script aus.
public class PrintPages
{
[DeclareAction(“PrintPages”)]
public void PrintPagesVoid()
{
CommandLineInterpreter oCLI = new CommandLineInterpreter();
ActionCallingContext acc = new ActionCallingContext();
oCLI.Execute(“PrnPrintDialogShow”, acc);
return;
}
[DeclareMenu]
public void MenuFunction()
{
Eplan.EplApi.Gui.ContextMenu oMenu =
new Eplan.EplApi.Gui.ContextMenu();
Eplan.EplApi.Gui.ContextMenuLocation oLocation =
new Eplan.EplApi.Gui.ContextMenuLocation(
“PmPageObjectTreeDialog”,
“1007”
);
oMenu.AddMenuItem(
oLocation,
“Seite(n) drucken”,
“PrintPages”,
true,
false
);
return;
}
}
Hallo,
seit wir vor kurzem von Eplan P8 Version 2.2 HF1 auf die Version 2.3 HF1 gewechselt haben, funktioniert folgender Code nicht mehr richtig:
CommandLineInterpreter oCLI = new CommandLineInterpreter();
ActionCallingContext acc = new ActionCallingContext();
string strPages = string.Empty;
acc.AddParameter(“TYPE”, “PAGES”);
oCLI.Execute(“selectionset”, acc);
acc.GetParameter(“PAGES”, ref strPages);
Es werden bei mir immer Seiten vertauscht (z.B.: Seite 3, Seite 1, Seite 2, Seite 4, … usw.)
Wie bekomm ich das wieder in der richtigen Reihenfolge?
Gruß Philipp
Denke es liegt an den Strukturkennzeichen…
Was steht genau im String?
Man könnte diesen splitten und dann erst sortieren.
Hallo,
mir ist aufgefallen, das das Skript bei mehreren markierten seiten für jede Seite einen eigenen Druckauftrag generiert (schon klar, wg. der Foreach-Schleife). Gibt es eine Möglichkeit, die markierten seiten zuerst in eine variable zu speichern und diese danach an den Drucker zu übergeben, das dieser nur einen Druckauftrag mit entsprechend vielen seiten generiert?
Ich bin dabei mir etwas Ähnliches zu basteln nur stoße ich genau da halt immer an die Grenze…
Grüße Dennis
Mir ist leider nichts bekannt.
An welcher Stelle muss ich das Skript abändern um anstatt “Drucken”, “Export PDF” zu erzeugen?
Müsstest viel ändern und die Seiten hinzufügen welche im PDF landen sollen. Siehe hier:
http://www.eplan.help/help/platform/2.7/de-DE/help/EPLAN_help.htm#htm/availableactions_o_export.htm