Guten Morgen!
Danke für die schnelle Rückmeldung!
Also gestern Abend hat es mehrfach erfolgreich funktioniert. Heute morgen, nachdem der Rechner über nach runtergefahren war, dann wieder Probleme... Mal sind alle Dateien mit unsichtbaren Texten, mal keine... Ich hab auch die "Settings" mal in separate Instanzen verschoben, aber auch das hat nicht funktioniert... Was mich aber wundert ist, dass das abfragen der Einstellungen eine sehr willkürliche Rückmeldung bietet. Im Zweig "aktiv" wurde "nicht aktiv" rückgemeldet, und andersherum. Dabei waren dann aber die PDFs korrekt.
//PDF deutsch mit unsichtbaren Texten
progress.BeginPart(30.0, "PDF in deutsch mit unsichtbaren Texten erstellen...");
setSetting(true);
pdfExport("de_DE");
pdfRename();
setSetting(false);
progress.EndPart();
//PDF englisch
progress.BeginPart(30.0, "PDF in englisch erstellen...");
pdfExport("en_US");
progress.EndPart();
//PDF deutsch
progress.BeginPart(30.0, "PDF in deutsch erstellen...");
pdfExport("de_DE");
progress.EndPart();
public void setSetting(bool invisible)
{
// Setzen der Benutzereinstellung zum drucken unsichtbarer Texte
Settings settingSetPrintInv = new Settings();
Settings settingResetPrintInv = new Settings();
Settings settingReadPrintInv = new Settings();
// Lesen der Aktuellen Einstellung
bool settingInvisibleActive = settingReadPrintInv.GetBoolSetting("USER.GedViewer.Print.PrintInvisibleObjects", 0);
if (invisible == true)
{
//Setzen der Einstellung
settingSetPrintInv.SetBoolSetting("USER.GedViewer.Print.PrintInvisibleObjects", true, 0);
#region debug
///*
MessageBox.Show("Unsichtbare Texte sollten aktiv sein.");
if (settingInvisibleActive)
{
MessageBox.Show("Unsichtbare sind wirklich aktiv.");
}
else
{
MessageBox.Show("FEHLER!!!\nUnsichtbare sind NICHT aktiviert worden...");
}
//*/
#endregion
}
else
{
//Rücksetzen der Einstellungen
settingResetPrintInv.SetBoolSetting("USER.GedViewer.Print.PrintInvisibleObjects", false, 0);
#region debug
///*
MessageBox.Show("Unsichtbare Texte sollten nicht mehr aktiv sein.");
if (settingInvisibleActive)
{
MessageBox.Show("FEHLER!!!\nUnsichtbare sind trotzdem noch aktiv...");
}
else
{
MessageBox.Show("Unsichtbare sind deaktiviert worden.");
}
//*/
#endregion
}
//Workaround, triggern, dass Eplan die Änderung der Einstellung erkennt
new EventManager().Send("PageManagement.ProjectSettings.Changed", new EventParameterString());
}
public void pdfExport(string language)
{
//Definition CLI für Export
CommandLineInterpreter cli_export = new CommandLineInterpreter();
ActionCallingContext acc_export = new ActionCallingContext();
//Allgemeine Parameter für den PDF-Export
acc_export.AddParameter("TYPE", "PDFPROJECTSCHEME");
acc_export.AddParameter("EXPORTFILE", projectPath + "\\");
//Sprache festlegen
acc_export.AddParameter("LANGUAGE", language);
//PDF erstellen
cli_export.Execute("export", acc_export);
}
public void pdfRename()
{
//Datei automatisch umbenennen
DirectoryInfo folder = new DirectoryInfo(projectPath + "\\");
FileInfo[] files = folder.GetFiles();
foreach (FileInfo file in files)
{
string oldFile = file.FullName;
string fileExtension = file.Extension;
string newFile = file.FullName.Replace(".pdf", "_MUT.pdf");
//Prüfen, ob Datei schon vorhanden ist und vom Typ .pdf ist
if (File.Exists(newFile) & fileExtension == ".pdf")
{
MessageBox.Show("Datei schon vorhanden.\n\n"
//+ "Dateityp: " + fileExtension //Debug
+ "Datei vor umbennenen: \n\n"
+ oldFile
+ "\n\nvorhandene Datei: \n\n"
+ newFile
+ "\n\nDie Datei mit unsichtbaren Texten wird überschrieben.");
}
else
{
//Datei umbennen
File.Move(file.FullName, file.FullName.Replace(".pdf", "_MUT.pdf"));
}
}
}
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP