Arbeiten mit Dokumenteinstellungen
Arbeiten mit Dokumenteinstellungen
Über den Inhalt hinaus enthält ein Word-Dokument Anwendungseinstellungen – Legacy-Kompatibilitäts-Schalter, Silbentrennungs-Einstellungen, die gespeicherte Seriendruck-Konfiguration, Anzeigeoptionen und den Schreibschutz-Zustand. Aspose.Words FOSS für .NET stellt dies bereit über die Aspose.Words.Settings Namensraum und eine Handvoll Eigenschaften von Document. Diese Seite behandelt jede Einstellungsgruppe und was sie steuert und was nicht.
Kompatibilitätsoptionen
Document.CompatibilityOptions ist eine CompatibilityOptions-Instanz, die dutzende boolesche Schalter enthält, die bestimmte ältere Word-Layout- und Abstandverhalten reproduzieren – zum Beispiel GrowAutofit, UseWord2010TableStyleRules, UseWord2002TableStyleRules, AdjustLineHeightInTable, AlignTablesRowByRow, NoExtraLineSpacing, SuppressSpacingAtTopOfPage, SpacingInWholePoints, UseFELayout und BalanceSingleByteDoubleByteWidth. Setzen Sie die benötigten Eigenschaften direkt, um die Rendering-Eigenheiten einer bestimmten Word-Version in nachgelagerten Werkzeugen, die das Dokument lesen, nachzubilden.
Silbentrennungspräferenzen
Document.HyphenationOptions ist eine HyphenationOptions-Instanz (AutoHyphenation, ConsecutiveHyphenLimit, HyphenateCaps, HyphenationZone), die die Silbentrennungspräferenzen von Word für das Dokument speichert. Diese Eigenschaften geben die Anforderung unverändert weiter; da diese Ausgabe nicht die Seitenlayout-Engine enthält, berechnet Aspose.Words FOSS die Silbentrennungen nicht selbst – Word wendet sie an, wenn es die Datei öffnet und paginiert.
Seriendruck-Konfiguration
Document.MailMergeSettings ist eine MailMergeSettings Instanz, die die im Dokument aufgezeichnete Seriendruck-Konfiguration speichert: MainDocumentType, CheckErrors, Destination, DataSource, DataType, Query, ConnectString, MailSubject, MailAsAttachment, ActiveRecord und ViewMergedData, plus Clear() und Clone(). Für externe Datenquellen, die über den Office Data Source Object-Mechanismus von Word verbunden sind, stellt MailMergeSettings.Odso eine Odso Instanz (DataSource, DataSourceType, TableName, ColumnDelimiter, FirstRowContainsColumnNames) bereit, deren FieldMapDatas (OdsoFieldMapDataCollection von OdsoFieldMapData: Name, MappedName, Column, Type) und RecipientDatas (OdsoRecipientDataCollection von OdsoRecipientData: Active, Column, Hash, UniqueTag) die Feldzuordnung und Empfängerliste beschreiben.
Dokumentenansichtseinstellungen
Document.ViewOptions ist eine ViewOptions Instanz, die steuert, wie Word die Datei beim Öffnen anzeigt: ViewType, ZoomType, ZoomPercent, DisplayBackgroundShape, DoNotDisplayPageBoundaries und FormsDesign. Diese Eigenschaften wirken sich ausschließlich auf die Anzeige des Dokuments durch Word aus – sie haben keinen Einfluss darauf, wie Aspose.Words FOSS das Dokument selbst verarbeitet.
Schreibschutz
Document.WriteProtection ist eine WriteProtection Instanz (IsWriteProtected, ReadOnlyRecommended) mit SetPassword() zum Festlegen eines Schutzkennworts und ValidatePassword() zum Überprüfen eines Kandidatenkennworts.
Maßeinheiten
Der MeasurementUnits Enum gibt die Maßeinheit an, die Word in seiner Benutzeroberfläche für ein Dokument verwenden soll.
Tipps und bewährte Verfahren
CompatibilityOptions.OptimizeFor(MsWordVersion)ist in der Klasse vorhanden, aber seine Implementierung ist in diesem Build nicht vollständig – es wirftNotImplementedException. Setzen Sie die einzelnenCompatibilityOptionsbooleschen Eigenschaften, die Sie benötigen, direkt, anstatt sich aufOptimizeForzu verlassen, um ein komplettes Versionsprofil auf einmal anzuwenden.MailMergeSettingsandOdsoSpeichern den Seriendruck configuration die im Dokument aufgezeichnet wurde – das Lesen und Schreiben dieser Konfiguration wird unterstützt, aber das Ausführen eines Seriendrucks (Ausfüllen von Feldern aus einer Live-Datenquelle) ist in dieser Open-Source-Edition nicht enthalten.HyphenationOptionsundViewOptionssind beide Anzeige-/UI-Einstellungen, die Word selbst anwendet – erwarten Sie nicht, dass ein Aufruf vonDocument.Save()das Zeilenumbruchsverhalten oder das Erscheinungsbild des Textes basierend auf diesen Einstellungen ändert, da diese Edition die Page-Layout-Engine nicht enthält.- Rufen Sie
WriteProtection.SetPassword()auf, bevor SieIsWriteProtectedaktivieren, und verwenden SieValidatePassword(), um ein Kandidatenpasswort zu prüfen, anstatt die rohe Zeichenkette selbst zu speichern oder zu vergleichen. CompatibilityOptions,HyphenationOptions,MailMergeSettings,ViewOptionsundWriteProtectionsind alle direkt überDocumenterreichbar – es ist nicht nötig, im Knotenbaum nach ihnen zu suchen.
Häufige Probleme
| Problem | Ursache | Behebung |
|---|---|---|
CompatibilityOptions.OptimizeFor() wirft NotImplementedException | In diesem Build nicht implementiert | Setzen Sie stattdessen die einzelnen booleschen Eigenschaften von CompatibilityOptions |
| Mail-Merge füllt das Dokument nicht mit Daten | MailMergeSettings speichert nur die Merge-Konfiguration; die Ausführung ist in dieser Edition nicht enthalten | Lesen Sie die gespeicherte Datenquellen-Konfiguration und steuern Sie Ihre eigene Feldbefüllungslogik, oder verwenden Sie die kommerzielle Aspose.Words für .NET |
Das Ändern von ViewOptions.ZoomPercent hat beim Verarbeiten des Dokuments keine sichtbare Auswirkung | ViewOptions wirkt sich nur auf die Anzeige in Word aus, nicht auf die eigene Verarbeitung von Aspose.Words FOSS | Erwartetes Verhalten – keine Korrektur nötig |
WriteProtection.ValidatePassword() liefert unerwartet false | SetPassword() wurde nicht zuerst aufgerufen, oder es wurde ein anderes Passwort gesetzt | Rufen Sie SetPassword() auf, um das geschützte Passwort vor der Validierung festzulegen |
FAQ
Kann ich Aspose.Words FOSS verwenden, um einen tatsächlichen Mail-Merge durchzuführen?
Nein. MailMergeSettings und Odso ermöglichen das Lesen und Schreiben der in einem Dokument gespeicherten Seriendruckkonfiguration, aber das Ausführen eines Seriendrucks – das Befüllen von Feldern aus einer Datenquelle – ist in dieser Open-Source-Edition nicht enthalten.
Funktioniert CompatibilityOptions.OptimizeFor()?
Nein – es wirft NotImplementedException in diesem Build. Setzen Sie stattdessen die einzelnen CompatibilityOptions-Eigenschaften, die Sie benötigen, direkt.
Wie kann ich ein Dokument mit einem Passwort gegen Änderungen schützen?
Rufen Sie WriteProtection.SetPassword() auf Document.WriteProtection auf, und setzen Sie dann IsWriteProtected, um den Schutz zu aktivieren.
Ändern HyphenationOptions und ViewOptions das Layout des Dokuments?
Nein. Beide sind gespeicherte Einstellungen, die Microsoft Word beim Öffnen und Anzeigen der Datei anwendet. Diese Edition enthält die Seitenlayout-Engine nicht, sodass diese Einstellungen weitergereicht werden, ohne dass Aspose.Words FOSS selbst das Layout daraus berechnet.
API Reference Zusammenfassung
| Klasse / Aufzählung | Beschreibung |
|---|---|
CompatibilityOptions | Legacy-Word-Version Layout-/Abstands-Schalter, über Document.CompatibilityOptions |
Compatibility | Enum, das die einzelnen Kompatibilitätsoptionen benennt |
MsWordVersion | Word-Version-Werte, die von CompatibilityOptions.OptimizeFor() verwendet werden |
HyphenationOptions | Silbentrennungspräferenzen, über Document.HyphenationOptions |
MailMergeSettings | Gespeicherte Seriendruck-Konfiguration, über Document.MailMergeSettings |
Odso | Office Data Source Object-Verbindungseinstellungen für Seriendruck |
OdsoFieldMapData / OdsoFieldMapDataCollection | Spalten-zu-Seriendruckfeld-Zuordnung für eine ODSO-Datenquelle |
OdsoRecipientData / OdsoRecipientDataCollection | Einbeziehungs-/Ausschlussstatus pro Empfänger für den Seriendruck |
ViewOptions | Word-Anzeigeeinstellungen (Zoom, Formatierungszeichen), über Document.ViewOptions |
WriteProtection | Dokument-Schreibschutzstatus, über Document.WriteProtection |
MeasurementUnits | Einheit, die Word in seiner Benutzeroberfläche verwenden soll |