Comment utiliser IronWord sur iOS
.NET MAUI (Multi-platform App UI) vous permet de créer des applications natives pour Android, iOS, Windows et macOS à partir d'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 multiplateformes et sans nécessiter Microsoft Office.
IronWord fonctionne parfaitement sur iOS via la base de code partagée .NET MAUI en utilisant le package NuGet standard IronWord ; aucune version spécifique à la plateforme n'est nécessaire.
Installez le package NuGet IronWord
IronWord est disponible en tant que package NuGet multiplateforme standard 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 :
- Allez dans Fichier > Nouveau > Projet.
- Sous Multiplateforme, sélectionnez Application .NET MAUI.
- 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>
Vous n'avez pas besoin de conditions de plateforme : IronWord fonctionne automatiquement sur toutes les cibles.
Créez l'interface de l'application en XAML
Ajouter 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">
<Label Text="IronWord iOS Demo"
FontSize="24"
FontAttributes="Bold"
HorizontalOptions="Center"
TextColor="#222"/>
<Button Text=" Open Word Document"
Clicked="OpenDocx"
BackgroundColor="#007AFF"
TextColor="White"
CornerRadius="10"
HeightRequest="50"/>
<Editor x:Name="docEditor"
Placeholder="Start editing..."
AutoSize="TextChanges"
HeightRequest="250"
FontSize="16"
TextColor="#333"
BackgroundColor="#F9F9F9"
CornerRadius="10"
Margin="0,10,0,0"/>
<Button Text=" Save as .docx"
Clicked="SaveDocx"
BackgroundColor="#34C759"
TextColor="White"
CornerRadius="10"
HeightRequest="50"/>
<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">
<Label Text="IronWord iOS Demo"
FontSize="24"
FontAttributes="Bold"
HorizontalOptions="Center"
TextColor="#222"/>
<Button Text=" Open Word Document"
Clicked="OpenDocx"
BackgroundColor="#007AFF"
TextColor="White"
CornerRadius="10"
HeightRequest="50"/>
<Editor x:Name="docEditor"
Placeholder="Start editing..."
AutoSize="TextChanges"
HeightRequest="250"
FontSize="16"
TextColor="#333"
BackgroundColor="#F9F9F9"
CornerRadius="10"
Margin="0,10,0,0"/>
<Button Text=" Save as .docx"
Clicked="SaveDocx"
BackgroundColor="#34C759"
TextColor="White"
CornerRadius="10"
HeightRequest="50"/>
<Label x:Name="statusLabel"
FontSize="14"
TextColor="Gray"
HorizontalOptions="Center"/>
</VerticalStackLayout>
</ContentPage>
Cela crée des boutons et une interface utilisateur d'éditeur pour charger/enregistrer du contenu Word.
Utiliser IronWord dans le code partagé
Dans votre fichier MainPage.xaml.cs, implémentez la lecture et l'écriture de documents DOCX à l'aide d'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
Aperçu du fichier de projet
La structure de votre projet devrait maintenant inclure :
IronWordMauiIOS/
│
├── MainPage.xaml ← Mise en page de l'interface utilisateur
├── MainPage.xaml.cs ← Logique de l'interface utilisateur (actions du document Word)
├── IronWordMauiIOS.csproj ← Références : package NuGet IronWord
├── Plateformes/ios/ ← Configuration spécifique à iOS (aucune modification nécessaire ici)
└── ...
Exécuter le projet
- Définissez la cible sur le simulateur iOS.
- Appuyez sur Exécuter.
- Testez la lecture et l'écriture de documents .docx directement sur votre appareil iOS simulé.
Notes finales
- Entièrement multiplateforme (iOS, Android, Windows, macOS)
- Aucun besoin de Microsoft Office ni d'interopérabilité
- 100% C# / .NET natif MAUI
- Fonctionne hors ligne
- Idéal pour créer des éditeurs de texte, des outils de création de CV et 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.

