Lavorare con le forme

In questo argomento viene illustrato come lavorare a livello di codice con le forme utilizzando Aspose.Words.

Le forme in Aspose.Words rappresentano un oggetto nel livello di disegno, ad esempio una forma, una casella di testo, una forma libera, un oggetto OLE, un controllo ActiveX o un’immagine. Un documento di Word può contenere una o più forme diverse. Le forme del documento sono rappresentate dalla classe Shape.

Inserimento di forme utilizzando Document Builder

È possibile inserire una forma in linea con tipo e dimensione specificati e una forma mobile con posizione, dimensione e tipo di disposizione del testo specificati in un documento utilizzando il metodo insert_shape. Il metodo insert_shape consente di inserire la forma DML nel modello del documento. Il documento deve essere salvato nel formato che supporta le forme DML, altrimenti tali nodi verranno convertiti in forma VML durante il salvataggio del documento.

L’esempio di codice seguente mostra come inserire questi tipi di forme nel documento:

Imposta proporzioni bloccate

Usando Aspose.Words, puoi specificare se le proporzioni della forma sono bloccate tramite la proprietà aspect_ratio_locked.

L’esempio di codice seguente mostra come utilizzare la proprietà AspectRatioLocked:

Imposta il layout della forma nella cella

Puoi anche specificare se la forma viene visualizzata all’interno o all’esterno di una tabella utilizzando la proprietà is_layout_in_cell.

L’esempio di codice seguente mostra come utilizzare la proprietà IsLayoutInCell:

Crea rettangolo di angolo di cattura

È possibile creare un rettangolo con angolo di ritaglio utilizzando Aspose.Words. I tipi di forma sono SINGLE_CORNER_SNIPPED, TOP_CORNERS_SNIPPED, DIAGONAL_CORNERS_SNIPPED, TOP_CORNERS_ONE_ROUNDED_ONE_SNIPPED, SINGLE_CORNER_ROUNDED, TOP_CORNERS_ROUNDED e DIAGONAL_CORNERS_ROUNDED.

La forma DML viene creata utilizzando il metodo insert_shape con questi tipi di forma. Questi tipi non possono essere utilizzati per creare forme VML. Il tentativo di creare una forma utilizzando il costruttore pubblico della classe Shape genera l’eccezione “NotSupportedException”.

L’esempio di codice seguente mostra come inserire questo tipo di forme nel documento:

Ottieni punti relativi ai limiti della forma effettivi

Utilizzando Aspose.Words API, puoi ottenere la posizione e la dimensione del blocco contenente la forma in punti, rispetto all’ancoraggio della forma più in alto. A tale scopo, utilizzare la proprietà bounds_in_points.

L’esempio di codice seguente mostra come utilizzare la proprietà BoundsInPoints:

Specificare l’ancoraggio verticale

È possibile specificare l’allineamento verticale del testo all’interno di una forma utilizzando la proprietà vertical_anchor.

L’esempio di codice seguente mostra come utilizzare la proprietà VerticalAnchor:

Rileva forma SmartArt

Aspose.Words consente anche di rilevare se la Shape ha un oggetto SmartArt. A tale scopo, utilizzare la proprietà proprietà has_smart_art.

L’esempio di codice seguente mostra come utilizzare la proprietà HasSmartArt:

Inserisci la riga orizzontale nel documento

È possibile inserire la forma della riga orizzontale in un documento utilizzando il metodo insert_horizontal_rule.

L’esempio di codice seguente mostra come eseguire questa operazione:

Aspose.Words API fornisce la proprietà horizontal_rule_format per accedere alle proprietà della forma della regola orizzontale. La classe HorizontalRuleFormat espone proprietà di base come height, color, no_shade ecc. per la formattazione di una regola orizzontale.

L’esempio di codice seguente mostra come impostare HorizontalRuleFormat:

Inserisci oggetto OLE come icona

Aspose.Words API fornisce la funzione Shape.insert_ole_object_as_icon per inserire un oggetto OLE incorporato o collegato come icona nel documento. Questa funzione consente di specificare il file dell’icona e la didascalia. Il tipo di oggetto OLE verrà rilevato utilizzando l’estensione del file.

Nell’esempio di codice seguente viene illustrato come impostare l’inserimento dell’oggetto OLE come icona nel documento:

Importa forme con XML matematico come forme in DOM

È possibile utilizzare la proprietà convert_shape_to_office_math per convertire le forme con EquationXML in oggetti Office Math. Il valore predefinito di questa proprietà corrisponde al comportamento di MS Word, ovvero le forme con equazioni XML non vengono convertite in oggetti matematici di Office.

L’esempio di codice seguente mostra come convertire le forme in oggetti Office Math: