Disposition dans la cellule

Ce didacticiel explique comment disposer une forme dans une cellule de tableau dans un document Word à l’aide d’Aspose.Words pour .NET. En ajustant les propriétés de la forme et en utilisant les options de disposition, vous pouvez contrôler le positionnement et l’apparence de la forme dans la cellule.

Conditions préalables

Pour suivre ce tutoriel, vous devez disposer des éléments suivants :

  • Bibliothèque Aspose.Words pour .NET installée.
  • Connaissance de base de C# et du traitement de mots avec des documents Word.

Étape 1 : configurer le répertoire de documents

Commencez par configurer le chemin d’accès à votre répertoire de documents. Remplacer"YOUR DOCUMENT DIRECTORY" avec le chemin réel du répertoire dans lequel vous souhaitez enregistrer le document.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Étape 2 : Créer un nouveau document et DocumentBuilder

Créez une nouvelle instance duDocument classe et unDocumentBuilder s’opposer à travailler avec le document.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Étape 3 : Construire la table

Utilisez leStartTable, EndTable, InsertCell , etWrite méthodes duDocumentBuilder objet pour construire une table. Définissez la hauteur de ligne souhaitée et la règle de hauteur à l’aide duRowFormat propriétés.

builder.StartTable();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
for (int i = 0; i < 31; i++)
{
    if (i != 0 && i % 7 == 0) builder.EndRow();
    builder.InsertCell();
    builder.Write("Cell contents");
}
builder.EndTable();

Étape 4 : Créer et formater la forme

Créer unShape objet et configurez ses propriétés pour définir le filigrane. Définissez la forme à disposer dans une cellule à l’aide duIsLayoutInCell propriété.

Shape watermark = new Shape(doc, ShapeType.TextPlainText)
{
    RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
    RelativeVerticalPosition = RelativeVerticalPosition.Page,
    IsLayoutInCell = true,
    Width = 300,
    Height = 70,
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Center,
    Rotation = -40
};

Étape 5 : Personnaliser la forme

Personnalisez l’apparence et le texte de la forme du filigrane en définissant des propriétés telles queFillColor, StrokeColor, TextPath, Name, WrapType, etc.

watermark.FillColor = Color.Gray;
watermark.StrokeColor = Color.Gray;
watermark.TextPath.Text = "watermarkText";
watermark.TextPath.FontFamily = "Arial";
watermark.Name = $"WaterMark_{Guid.NewGuid()}";
watermark.WrapType = WrapType.None;

Étape 6 : Insérez la forme dans le document

Insérez la forme du filigrane dans le document à l’aide duInsertNode méthode duDocumentBuilder objet. Positionnez la forme à l’aide duMoveTo méthode pour le placer après la dernière exécution dans le document.

Run run = doc.GetChildNodes(NodeType.Run, true)[doc.GetChildNodes(NodeType.Run, true).Count - 1] as Run;
builder.MoveTo(run);
builder.InsertNode(watermark);

Étape 7 : Enregistrez le document

Enregistrez le document dans le répertoire spécifié à l’aide duSave méthode. Fournissez le nom de fichier souhaité avec l’extension de fichier appropriée. Dans cet exemple, nous enregistrons le document sous le nom « WorkingWithShapes.LayoutInCell.docx ».

doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
doc

.Save(dataDir + "WorkingWithShapes.LayoutInCell.docx");

Exemple de code source pour Layout In Cell utilisant Aspose.Words pour .NET

	// Chemin d'accès à votre répertoire de documents
	string dataDir = "YOUR DOCUMENT DIRECTORY";

	Document doc = new Document();
	DocumentBuilder builder = new DocumentBuilder(doc);
	builder.StartTable();
	builder.RowFormat.Height = 100;
	builder.RowFormat.HeightRule = HeightRule.Exactly;
	for (int i = 0; i < 31; i++)
	{
		if (i != 0 && i % 7 == 0) builder.EndRow();
		builder.InsertCell();
		builder.Write("Cell contents");
	}
	builder.EndTable();
	Shape watermark = new Shape(doc, ShapeType.TextPlainText)
	{
		RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
		RelativeVerticalPosition = RelativeVerticalPosition.Page,
		IsLayoutInCell = true, // Affichez la forme à l'extérieur de la cellule du tableau si elle doit être placée dans une cellule.
		Width = 300,
		Height = 70,
		HorizontalAlignment = HorizontalAlignment.Center,
		VerticalAlignment = VerticalAlignment.Center,
		Rotation = -40
	};
	watermark.FillColor = Color.Gray;
	watermark.StrokeColor = Color.Gray;
	watermark.TextPath.Text = "watermarkText";
	watermark.TextPath.FontFamily = "Arial";
	watermark.Name = $"WaterMark_{Guid.NewGuid()}";
	watermark.WrapType = WrapType.None;
	Run run = doc.GetChildNodes(NodeType.Run, true)[doc.GetChildNodes(NodeType.Run, true).Count - 1] as Run;
	builder.MoveTo(run);
	builder.InsertNode(watermark);
	doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
	doc.Save(dataDir + "WorkingWithShapes.LayoutInCell.docx");

C’est ça! Vous avez réussi à disposer une forme dans une cellule de tableau dans un document Word à l’aide d’Aspose.Words pour .NET.