Laden...

[gelöst] Tab-Positionen gehen bei NetOffice verloren

Erstellt von Jörg vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.146 Views
J
Jörg Themenstarter:in
152 Beiträge seit 2009
vor 9 Jahren
[gelöst] Tab-Positionen gehen bei NetOffice verloren

Hallo,

ich tue mit folgendem Code eine Vorlagen-Datei öffnen,
ich schreibe etwas in die Datei und speichere sie unter einem anderen Dateinamen ab.
In der Vorlagen-Datei befinden sich festgelegte Tabulator-Positionen (Ansicht -> Lineal).
In der neu erzeugten Datei fehlen jedoch die Tabulator-Positionen.
Gibt es hier einen Trick wie man diese erhalten kann??


  using (Word.Application wordApplication = new Word.Application())
            {
                try
                {
                    wordApplication.DisplayAlerts = word.Enums.WdAlertLevel.wdAlertsNone;
                    Word.Document newDocument = wordApplication.Documents.Open("Vorlage...", Missing.Value, false, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                    //Irgendwas schreiben
                    
                    //Speichern und schliessen
                    newDocument.SaveAs(DestinationFile, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                }
                catch (Exception exc) { ex = exc; }
                finally { wordApplication.Quit(false, Missing.Value, Missing.Value); }
       }

Gelöschter Account
vor 9 Jahren

Vorab: Lass doch die blöden Missing.Value Argumente weg und achte darauf das du für wordApplication nach dem Quit auch Dispose aufrufst.

Wenn du sagst die Positionen gehen bei NetOffice verloren, bedeutet das bei Verwendung einer anderen API funktionierts? (Was ich mir nicht vorstellen kann, obwohl dein Code aufgrund der exzessiven Verwendung von Missing.Value ein bisschen nach portiertem Interop Code aussieht)

Ich würde das Verhalten gerne mal nachstellen aber dafür brauche ich von dir die Info welche Word Version und welche NO Version du einsetzt.

J
Jörg Themenstarter:in
152 Beiträge seit 2009
vor 9 Jahren

Vorab: Lass doch die blöden Missing.Value Argumente weg

OK

und achte darauf das du für wordApplication nach dem Quit auch Dispose aufrufst.

Ich dachte mein Using ist ausreichend ?!?

Wenn du sagst die Positionen gehen bei NetOffice verloren, bedeutet das bei Verwendung einer anderen API funktionierts? (Was ich mir nicht vorstellen kann, obwohl dein Code aufgrund der exzessiven Verwendung von Missing.Value ein bisschen nach portiertem Interop Code aussieht)

Ich würde das Verhalten gerne mal nachstellen aber dafür brauche ich von dir die Info welche Word Version und welche NO Version du einsetzt.

Wenn ich nur folgenden Code ausführe gehen die Tab-Positionen nicht verloren, das Dokument wird korrekt unter dem neuen Namen abgespeichert.


   using (Word.Application wordApplication = new Word.Application())
            {
                try
                {
                    wordApplication.DisplayAlerts = Word.Enums.WdAlertLevel.wdAlertsNone;
                    Word.Document newDocument = wordApplication.Documents.Open(@"F:\Test.docx");
                    newDocument.SaveAs(@"F:\Test2.docx");
                }
                catch (Exception exc) { ex = exc; }
                finally { wordApplication.Quit(false, Missing.Value, Missing.Value); }
            }

Sobald ich etwas über die Zwischenablage einfüge gehen die Tab-Positionen verloren...


   using (Word.Application wordApplication = new Word.Application())
            {
                try
                {
                    wordApplication.DisplayAlerts = Word.Enums.WdAlertLevel.wdAlertsNone;
                    Word.Document newDocument = wordApplication.Documents.Open(@"F:\Test.docx");

                    Clipboard.SetData("Rich Text Format", Text);
                    wordApplication.Selection.Paste();

                    newDocument.SaveAs(@"F:\Test2.docx");
                }
                catch (Exception exc) { ex = exc; }
                finally { wordApplication.Quit(false, Missing.Value, Missing.Value); }
            }

J
Jörg Themenstarter:in
152 Beiträge seit 2009
vor 9 Jahren

NetOffice-Version ist v1.6

Microsoft Word 2010

J
Jörg Themenstarter:in
152 Beiträge seit 2009
vor 9 Jahren

Wenn ich die Tab-Positionen in den Inhalt der Zwischenablage einfüge funktioniert es
👍