Code:
// PDFbyEplanEnd, Version 1.0.0, vom 14.04.2009
//
// Beim schließen von Eplan wird automatisch für
// jedes geöffnete Projekt eine PDF-Datei mit dem
// Projektnamen angelegt.
//
// Copyright by Frank Schöneck, 2009
// letzte Änderung: Frank Schöneck, 21.01.2009 V1.0.0, Projektbeginn
//
// für Eplan Electric P8, ab V1.9.5
//
//using System.IO;
public class PDFbyEplanEnd
{
[DeclareEventHandler("Eplan.EplApi.OnMainEnd")]
public void MyEventHandlerFunction()
{
string strPDFDatei = string.Empty;
string strProjektOrdner = string.Empty;
string strAusgabeOrdner = string.Empty;
int AusgabeNach;
//Hier einstellen wohin die PDF-Datei gespeichert werden soll!
//1 = in den Projekt-Ordner
//2 = in den Ordner eine Ebene über dem Projekt-Ordner
//3 = in Ordner "Eigene Dateien"
//4 = auf den Desktop
AusgabeNach = 4; //<-- hier einstellen
strProjektOrdner = PathMap.SubstitutePath("$(PROJECTPATH)");
switch (AusgabeNach)
{
case 1:
//in den Projekt-Ordner
strAusgabeOrdner = strProjektOrdner;
break;
case 2:
//in den Ordner eine Ebene über dem Projekt-Ordner
strAusgabeOrdner = strProjektOrdner.Substring(0, strProjektOrdner.LastIndexOf(@"\"));
break;
case 3:
//in Ordner "Eigene Dateien"
strAusgabeOrdner = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
break;
case 4:
//in Ordner "Desktop"
strAusgabeOrdner = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
break;
default:
MessageBox.Show("Variable 'AusgabeNach' wurde nicht korrekt eingestellt.", "PDFbyProjectClose", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
//alle geöffneten Projekte durchgehen
do
{
strPDFDatei = strAusgabeOrdner + @"\" + PathMap.SubstitutePath("$(PROJECTNAME)") + ".pdf";
//MessageBox.Show(strPDFDatei);
PDFexport(strPDFDatei);
Project_Close();
}
while (PathMap.SubstitutePath("$(PROJECTNAME)") != string.Empty);
return;
}
public void Project_Close()
{
//Aktuelles Projekt schließen
ActionCallingContext ProjektContext = new ActionCallingContext();
ProjektContext.AddParameter("NOCLOSE", "0");
new CommandLineInterpreter().Execute("XPrjActionProjectClose", ProjektContext);
}
public void PDFexport(string strZielDatei)
{
//Gesamtes Projekt als PDF ausgeben
//Progressbar ein
Eplan.EplApi.Base.Progress oProgress = new Eplan.EplApi.Base.Progress("SimpleProgress");
oProgress.ShowImmediately();
ActionCallingContext pdfContext = new ActionCallingContext();
pdfContext.AddParameter("type", "PDFPROJECTSCHEME"); //PDFPROJECTSCHEME = Projekt im PDF-Format exportieren
//pdfContext.AddParameter("exportscheme", "NAME_SCHEMA"); //verwendetes Schema
pdfContext.AddParameter("exportfile", strZielDatei); //Name export.Projekt, Vorgabewert: Projektname
pdfContext.AddParameter("exportmodel", "0"); //0 = keine Modelle ausgeben
pdfContext.AddParameter("blackwhite", "1"); //1 = PDF wird schwarz-weiss
pdfContext.AddParameter("useprintmargins", "1"); //1 = Druckränder verwenden
pdfContext.AddParameter("readonlyexport", "2"); //1 = PDF wird schreibgeschützt
pdfContext.AddParameter("usesimplelink", "1"); //1 = einfache Sprungfunktion
pdfContext.AddParameter("usezoomlevel", "1"); //Springen in Navigationsseiten
pdfContext.AddParameter("fastwebview", "1"); //1 = schnelle Web-Anzeige
pdfContext.AddParameter("zoomlevel", "1"); //wenn USEZOOMLEVEL auf 1 dann hier Zoomstufe in mm
new CommandLineInterpreter().Execute("export", pdfContext);
//'Progressbar aus
oProgress.EndPart(true);
return;
}
}