Comment utiliser IronWord sur iOS

This article was translated from English: Does it need improvement?
Translated
View the article in English

.NET MAUI (Multi-platform App UI) vous permet de créer des applications natives pour Android, iOS, Windows et macOS en utilisant une seule base de code .NET. Avec IronWord, les développeurs .NET peuvent facilement créer, lire, modifier et enregistrer des documents Microsoft Word (.docx) — entièrement multiplateforme et sans nécessiter Microsoft Office.

IronWord fonctionne parfaitement sur iOS via la base de code partagé .NET MAUI en utilisant le package standard IronWord NuGet — aucune version spécifique à la plateforme n'est nécessaire.

Installer le package NuGet IronWord

IronWord est disponible en tant que package NuGet standard multiplateforme et prend en charge toutes les principales cibles .NET MAUI, y compris iOS.

Install-Package IronWord

Créer un projet .NET MAUI

Dans Visual Studio :

  1. Allez dans Fichier > Nouveau > Projet.
  2. Sous Multiplateforme, sélectionnez .NET MAUI App.
  3. Nommez votre projet (par exemple, IronWordMauiIOS) et cliquez sur Créer.

Ajoutez IronWord à votre projet

Vous pouvez ajouter le package via le gestionnaire de packages NuGet ou en modifiant votre fichier .csproj :

<ItemGroup>
  <PackageReference Include="IronWord" Version="2025.5.0" />
</ItemGroup>
<ItemGroup>
  <PackageReference Include="IronWord" Version="2025.5.0" />
</ItemGroup>
XML

Vous n'avez pas besoin de conditions de plateforme — IronWord fonctionne sur toutes les cibles automatiquement.

Créez l'interface de l'application en XAML

Ajoutez une interface utilisateur simple pour charger, modifier et enregistrer des documents Word. Pour ce faire, commencez par ajouter ce code au code MainPage.xml :

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronWordMauiIOS.MainPage"
             BackgroundColor="White">

    <VerticalStackLayout Padding="20"
                         Spacing="15"
                         VerticalOptions="Center">

        <!-- Header -->
        <Label Text="IronWord iOS Demo"
               FontSize="24"
               FontAttributes="Bold"
               HorizontalOptions="Center"
               TextColor="#222"/>

        <!-- Open .docx -->
        <Button Text=" Open Word Document"
                Clicked="OpenDocx"
                BackgroundColor="#007AFF"
                TextColor="White"
                CornerRadius="10"
                HeightRequest="50"/>

        <!-- Editable content -->
        <Editor x:Name="docEditor"
                Placeholder="Start editing..."
                AutoSize="TextChanges"
                HeightRequest="250"
                FontSize="16"
                TextColor="#333"
                BackgroundColor="#F9F9F9"
                CornerRadius="10"
                Margin="0,10,0,0"/>

        <!-- Save Button -->
        <Button Text=" Save as .docx"
                Clicked="SaveDocx"
                BackgroundColor="#34C759"
                TextColor="White"
                CornerRadius="10"
                HeightRequest="50"/>

        <!-- Status message -->
        <Label x:Name="statusLabel"
               FontSize="14"
               TextColor="Gray"
               HorizontalOptions="Center"/>
    </VerticalStackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="IronWordMauiIOS.MainPage"
             BackgroundColor="White">

    <VerticalStackLayout Padding="20"
                         Spacing="15"
                         VerticalOptions="Center">

        <!-- Header -->
        <Label Text="IronWord iOS Demo"
               FontSize="24"
               FontAttributes="Bold"
               HorizontalOptions="Center"
               TextColor="#222"/>

        <!-- Open .docx -->
        <Button Text=" Open Word Document"
                Clicked="OpenDocx"
                BackgroundColor="#007AFF"
                TextColor="White"
                CornerRadius="10"
                HeightRequest="50"/>

        <!-- Editable content -->
        <Editor x:Name="docEditor"
                Placeholder="Start editing..."
                AutoSize="TextChanges"
                HeightRequest="250"
                FontSize="16"
                TextColor="#333"
                BackgroundColor="#F9F9F9"
                CornerRadius="10"
                Margin="0,10,0,0"/>

        <!-- Save Button -->
        <Button Text=" Save as .docx"
                Clicked="SaveDocx"
                BackgroundColor="#34C759"
                TextColor="White"
                CornerRadius="10"
                HeightRequest="50"/>

        <!-- Status message -->
        <Label x:Name="statusLabel"
               FontSize="14"
               TextColor="Gray"
               HorizontalOptions="Center"/>
    </VerticalStackLayout>
</ContentPage>
XML

Cela crée des boutons et une interface utilisateur d'édition pour charger/enregistrer du contenu Word.

Utilisez IronWord dans le code partagé

Dans votre MainPage.xaml.cs, implémentez la lecture et l'écriture de documents DOCX en utilisant IronWord :

using IronWord;
using IronWord.Models;
using Microsoft.Maui.Storage;
using System.Text;

namespace IronWordMauiIOS;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        License.LicenseKey = "YOUR-LICENSE-KEY"; 
    }

    private async void OpenDocx(object sender, EventArgs e)
    {
        try
        {
            var file = await FilePicker.PickAsync();
            if (file == null) return;

            var path = Path.Combine(FileSystem.CacheDirectory, file.FileName);
            using (var source = await file.OpenReadAsync())
            using (var target = File.Create(path))
                await source.CopyToAsync(target);

            var doc = new WordDocument(path);
            docEditor.Text = ExtractText(doc);
            statusLabel.Text = "Document loaded successfully.";
        }
        catch (Exception ex)
        {
            statusLabel.Text = $"Error: {ex.Message}";
        }
    }

    private async void SaveDocx(object sender, EventArgs e)
    {
        try
        {
            var document = new WordDocument();
            var paragraph = new Paragraph();
            paragraph.Texts.Add(new TextContent(docEditor.Text));
            document.Paragraphs.Add(paragraph);

            var fileName = $"ExportedDoc_{DateTime.Now:yyyyMMddHHmmss}.docx";
            var path = Path.Combine(FileSystem.AppDataDirectory, fileName);
            document.SaveAs(path);

            statusLabel.Text = $"Saved to: {fileName}";
        }
        catch (Exception ex)
        {
            statusLabel.Text = $"Save error: {ex.Message}";
        }
    }

    private string ExtractText(WordDocument doc)
    {
        var sb = new StringBuilder();
        foreach (var para in doc.Paragraphs)
        {
            foreach (var element in para.Texts)
            {
                if (element is TextContent text)
                    sb.AppendLine(text.Text);
            }
        }
        return sb.ToString();
    }
}
using IronWord;
using IronWord.Models;
using Microsoft.Maui.Storage;
using System.Text;

namespace IronWordMauiIOS;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        License.LicenseKey = "YOUR-LICENSE-KEY"; 
    }

    private async void OpenDocx(object sender, EventArgs e)
    {
        try
        {
            var file = await FilePicker.PickAsync();
            if (file == null) return;

            var path = Path.Combine(FileSystem.CacheDirectory, file.FileName);
            using (var source = await file.OpenReadAsync())
            using (var target = File.Create(path))
                await source.CopyToAsync(target);

            var doc = new WordDocument(path);
            docEditor.Text = ExtractText(doc);
            statusLabel.Text = "Document loaded successfully.";
        }
        catch (Exception ex)
        {
            statusLabel.Text = $"Error: {ex.Message}";
        }
    }

    private async void SaveDocx(object sender, EventArgs e)
    {
        try
        {
            var document = new WordDocument();
            var paragraph = new Paragraph();
            paragraph.Texts.Add(new TextContent(docEditor.Text));
            document.Paragraphs.Add(paragraph);

            var fileName = $"ExportedDoc_{DateTime.Now:yyyyMMddHHmmss}.docx";
            var path = Path.Combine(FileSystem.AppDataDirectory, fileName);
            document.SaveAs(path);

            statusLabel.Text = $"Saved to: {fileName}";
        }
        catch (Exception ex)
        {
            statusLabel.Text = $"Save error: {ex.Message}";
        }
    }

    private string ExtractText(WordDocument doc)
    {
        var sb = new StringBuilder();
        foreach (var para in doc.Paragraphs)
        {
            foreach (var element in para.Texts)
            {
                if (element is TextContent text)
                    sb.AppendLine(text.Text);
            }
        }
        return sb.ToString();
    }
}
Imports IronWord
Imports IronWord.Models
Imports Microsoft.Maui.Storage
Imports System.Text

Namespace IronWordMauiIOS

	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			InitializeComponent()
			License.LicenseKey = "YOUR-LICENSE-KEY"
		End Sub

		Private Async Sub OpenDocx(ByVal sender As Object, ByVal e As EventArgs)
			Try
				Dim file = Await FilePicker.PickAsync()
				If file Is Nothing Then
					Return
				End If

				Dim path As System.String = System.IO.Path.Combine(FileSystem.CacheDirectory, file.FileName)
				Using source = Await file.OpenReadAsync()
				Using target = System.IO.File.Create(path)
					Await source.CopyToAsync(target)
				End Using
				End Using

				Dim doc = New WordDocument(path)
				docEditor.Text = ExtractText(doc)
				statusLabel.Text = "Document loaded successfully."
			Catch ex As Exception
				statusLabel.Text = $"Error: {ex.Message}"
			End Try
		End Sub

		Private Async Sub SaveDocx(ByVal sender As Object, ByVal e As EventArgs)
			Try
				Dim document = New WordDocument()
				Dim paragraph As New Paragraph()
				paragraph.Texts.Add(New TextContent(docEditor.Text))
				document.Paragraphs.Add(paragraph)

				Dim fileName = $"ExportedDoc_{DateTime.Now:yyyyMMddHHmmss}.docx"
				Dim path As System.String = System.IO.Path.Combine(FileSystem.AppDataDirectory, fileName)
				document.SaveAs(path)

				statusLabel.Text = $"Saved to: {fileName}"
			Catch ex As Exception
				statusLabel.Text = $"Save error: {ex.Message}"
			End Try
		End Sub

		Private Function ExtractText(ByVal doc As WordDocument) As String
			Dim sb = New StringBuilder()
			For Each para In doc.Paragraphs
				For Each element In para.Texts
					Dim tempVar As Boolean = TypeOf element Is TextContent
					Dim text As TextContent = If(tempVar, CType(element, TextContent), Nothing)
					If tempVar Then
						sb.AppendLine(text.Text)
					End If
				Next element
			Next para
			Return sb.ToString()
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Vue d'ensemble du fichier de projet

La structure de votre projet doit maintenant inclure :

IronWordMauiIOS/
│
├── MainPage.xaml              ← Mise en page de l'UI
├── MainPage.xaml.cs          ← Logique pour l'UI (actions sur les documents Word)
├── IronWordMauiIOS.csproj     ← Références au package NuGet IronWord
├── Platforms/ios/             ← Config spécifique à iOS (aucun changement nécessaire ici)
└── ...

Exécuter le projet

  1. Définissez la cible sur Simulateur iOS.
  2. Appuyez sur Exécuter.
  3. Testez la lecture et l'écriture de documents .docx directement sur votre appareil iOS simulé.

Notes finales

  • Entièrement multiplateforme (iOS, Android, Windows, macOS)
  • Pas besoin de Microsoft Office ou Interop
  • 100 % natif C# / .NET MAUI
  • Fonctionne hors ligne
  • Excellent pour créer des éditeurs, des constructeurs de CV, des visionneuses de documents

Questions Fréquemment Posées

Qu'est-ce que IronWord et comment peut-il être utilisé sur iOS ?

IronWord est une bibliothèque puissante conçue pour gérer les documents Word dans les applications .NET, y compris iOS. Elle permet aux développeurs de créer, manipuler et convertir des documents Word de manière fluide au sein de leurs applications mobiles.

Comment intégrer IronWord dans mon projet iOS ?

Pour intégrer IronWord dans votre projet iOS, vous devez ajouter la bibliothèque IronWord à votre solution .NET, configurer votre projet pour la référencer, et utiliser les API fournies pour gérer les documents Word.

Quelles sont les exigences système pour utiliser IronWord sur iOS ?

IronWord nécessite un environnement .NET compatible sur votre configuration de développement iOS. Assurez-vous que votre environnement de développement est à jour et prend en charge les frameworks nécessaires pour une intégration fluide.

IronWord peut-il convertir des documents Word en d'autres formats sur iOS ?

Oui, IronWord peut convertir des documents Word dans divers formats, tels que PDF, dans vos applications iOS, permettant une gestion et un partage de documents polyvalents.

IronWord prend-il en charge la manipulation de documents sur iOS ?

Absolument, IronWord prend en charge une large gamme de manipulations de documents, y compris l'édition de texte, l'insertion d'images et la gestion des propriétés des documents directement au sein des applications iOS.

Est-il possible de créer des documents Word à partir de zéro en utilisant IronWord sur iOS ?

Oui, IronWord vous permet de créer de nouveaux documents Word à partir de zéro sur iOS, en fournissant une suite complète d'outils pour ajouter du contenu, du formatage et des styles par programmation.

Comment IronWord gère-t-il la sécurité des documents Word dans les applications iOS ?

IronWord inclut des fonctionnalités pour gérer la sécurité des documents, telles que la protection par mot de passe et le cryptage, garantissant que vos documents Word restent sécurisés sur les applications iOS.

Existe-t-il des projets exemples disponibles pour utiliser IronWord sur iOS ?

Oui, Iron Software fournit des projets exemples et une documentation pour aider les développeurs à rapidement démarrer avec IronWord sur iOS, mettant en avant diverses fonctionnalités et cas d'utilisation.

IronWord nécessite-t-il une licence supplémentaire pour le déploiement iOS ?

IronWord nécessite une licence valide pour le déploiement dans des environnements de production, y compris les applications iOS. Assurez-vous de vérifier les termes de licence pour vous conformer aux directives d'utilisation.

Kye Stuart
Rédacteur technique

Kye Stuart fusionne la passion du codage et l'habileté rédactionnelle chez Iron Software. Éduqué au Yoobee College en déploiement de logiciels, ils transforment maintenant des concepts technologiques complexes en contenu éducatif clair. Kye valorise l'apprentissage tout au long de la vie et relève de nouveaux dé...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 28,054 | Version : 2025.12 vient de sortir