SpecialChar
SpecialChar class
Classe base per i caratteri speciali nel documento.
Per saperne di più, visita ilModello a oggetti del documento (DOM) di Aspose.Words articolo di documentazione.
public class SpecialChar : Inline
Proprietà
Nome | Descrizione |
---|---|
CustomNodeId { get; set; } | Specifica l’identificatore del nodo personalizzato. |
virtual Document { get; } | Ottiene il documento a cui appartiene questo nodo. |
Font { get; } | Fornisce l’accesso alla formattazione del carattere di questo oggetto. |
virtual IsComposite { get; } | RestituisceVERO se questo nodo può contenere altri nodi. |
IsDeleteRevision { get; } | Restituisce true se questo oggetto è stato eliminato in Microsoft Word mentre il monitoraggio delle modifiche era abilitato. |
IsFormatRevision { get; } | Restituisce true se la formattazione dell’oggetto è stata modificata in Microsoft Word mentre il rilevamento delle modifiche era abilitato. |
IsInsertRevision { get; } | Restituisce true se questo oggetto è stato inserito in Microsoft Word mentre il rilevamento delle modifiche era abilitato. |
IsMoveFromRevision { get; } | RestituisceVERO se questo oggetto è stato spostato (eliminato) in Microsoft Word mentre il monitoraggio delle modifiche era abilitato. |
IsMoveToRevision { get; } | RestituisceVERO se questo oggetto è stato spostato (inserito) in Microsoft Word mentre il monitoraggio delle modifiche era abilitato. |
NextSibling { get; } | Ottiene il nodo immediatamente successivo a questo nodo. |
override NodeType { get; } | RestituisceSpecialChar . |
ParentNode { get; } | Ottiene il genitore immediato di questo nodo. |
ParentParagraph { get; } | Recupera il genitoreParagraph di questo nodo. |
PreviousSibling { get; } | Ottiene il nodo immediatamente precedente questo nodo. |
Range { get; } | Restituisce unRange oggetto che rappresenta la porzione di un documento contenuta in questo nodo. |
Metodi
Nome | Descrizione |
---|---|
override Accept(DocumentVisitor) | Accetta un visitatore. |
Clone(bool) | Crea un duplicato del nodo. |
GetAncestor(NodeType) | Ottiene il primo antenato dell’oggetto specificatoNodeType . |
GetAncestor(Type) | Ottiene il primo antenato del tipo di oggetto specificato. |
override GetText() | Ottiene il carattere speciale rappresentato da questo nodo. |
NextPreOrder(Node) | Ottiene il nodo successivo in base all’algoritmo di attraversamento dell’albero preordinato. |
PreviousPreOrder(Node) | Ottiene il nodo precedente secondo l’algoritmo di attraversamento dell’albero preordinato. |
Remove() | Si rimuove dal genitore. |
ToString(SaveFormat) | Esporta il contenuto del nodo in una stringa nel formato specificato. |
ToString(SaveOptions) | Esporta il contenuto del nodo in una stringa utilizzando le opzioni di salvataggio specificate. |
Osservazioni
Un documento di Microsoft Word può includere un numero di caratteri speciali che rappresentano campi, campi modulo, forme, oggetti OLE, note a piè di pagina ecc. Per l’elenco dei caratteri speciali, vedereControlChar
.
SpecialChar
è un nodo inline e può essere solo un figlio diParagraph
.
SpecialChar
char viene utilizzato come classe base per classi più specifiche che rappresentano caratteri speciali per i quali Aspose.Words fornisce accesso programmatico. IlSpecialChar
la classe stessa viene utilizzata anche per rappresentare un carattere speciale per il quale Aspose.Words non fornisce un accesso programmatico dettagliato.
Esempi
Mostra come utilizzare un’implementazione di DocumentVisitor per rimuovere tutto il contenuto nascosto da un documento.
public void RemoveHiddenContentFromDocument()
{
Document doc = new Document(MyDir + "Hidden content.docx");
RemoveHiddenContentVisitor hiddenContentRemover = new RemoveHiddenContentVisitor();
// Di seguito sono riportati tre tipi di campi che possono accettare un visitatore del documento,
// che gli consentirà di visitare il nodo accettante e quindi attraversare i suoi nodi figlio in modalità depth-first.
// 1 - Nodo paragrafo:
Paragraph para = (Paragraph)doc.GetChild(NodeType.Paragraph, 4, true);
para.Accept(hiddenContentRemover);
// 2 - Nodo tabella:
Table table = doc.FirstSection.Body.Tables[0];
table.Accept(hiddenContentRemover);
// 3 - Nodo documento:
doc.Accept(hiddenContentRemover);
doc.Save(ArtifactsDir + "Font.RemoveHiddenContentFromDocument.docx");
}
/// <summary>
/// Rimuove tutti i nodi visitati contrassegnati come "contenuto nascosto".
/// </summary>
public class RemoveHiddenContentVisitor : DocumentVisitor
{
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo FieldStart.
/// </summary>
public override VisitorAction VisitFieldStart(FieldStart fieldStart)
{
if (fieldStart.Font.Hidden)
fieldStart.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo FieldEnd.
/// </summary>
public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
{
if (fieldEnd.Font.Hidden)
fieldEnd.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo FieldSeparator.
/// </summary>
public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
{
if (fieldSeparator.Font.Hidden)
fieldSeparator.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo Run.
/// </summary>
public override VisitorAction VisitRun(Run run)
{
if (run.Font.Hidden)
run.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un nodo Paragrafo.
/// </summary>
public override VisitorAction VisitParagraphStart(Paragraph paragraph)
{
if (paragraph.ParagraphBreakFont.Hidden)
paragraph.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un FormField.
/// </summary>
public override VisitorAction VisitFormField(FormField formField)
{
if (formField.Font.Hidden)
formField.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un GroupShape.
/// </summary>
public override VisitorAction VisitGroupShapeStart(GroupShape groupShape)
{
if (groupShape.Font.Hidden)
groupShape.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevata una forma.
/// </summary>
public override VisitorAction VisitShapeStart(Shape shape)
{
if (shape.Font.Hidden)
shape.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato un commento.
/// </summary>
public override VisitorAction VisitCommentStart(Comment comment)
{
if (comment.Font.Hidden)
comment.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevata una nota a piè di pagina.
/// </summary>
public override VisitorAction VisitFootnoteStart(Footnote footnote)
{
if (footnote.Font.Hidden)
footnote.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando nel documento viene rilevato uno SpecialCharacter.
/// </summary>
public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
{
Console.WriteLine(specialChar.GetText());
if (specialChar.Font.Hidden)
specialChar.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando la visita di un nodo Tabella nel documento è terminata.
/// </summary>
public override VisitorAction VisitTableEnd(Table table)
{
// Il contenuto all'interno delle celle della tabella potrebbe avere il flag di contenuto nascosto, ma le tabelle stesse no.
// Se questa tabella non avesse altro che contenuti nascosti, questo visitatore li avrebbe rimossi tutti,
// e non rimarrebbero nodi figlio.
// Pertanto, possiamo anche trattare la tabella stessa come contenuto nascosto e rimuoverla.
// Le tabelle vuote ma senza contenuto nascosto avranno celle con paragrafi vuoti all'interno,
// che questo visitatore non rimuoverà.
if (!table.HasChildNodes)
table.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando la visita di un nodo Cella è terminata nel documento.
/// </summary>
public override VisitorAction VisitCellEnd(Cell cell)
{
if (!cell.HasChildNodes && cell.ParentNode != null)
cell.Remove();
return VisitorAction.Continue;
}
/// <summary>
/// Chiamato quando la visita di un nodo Riga nel documento è terminata.
/// </summary>
public override VisitorAction VisitRowEnd(Row row)
{
if (!row.HasChildNodes && row.ParentNode != null)
row.Remove();
return VisitorAction.Continue;
}
}
Guarda anche
- class Inline
- spazio dei nomi Aspose.Words
- assemblea Aspose.Words