How to Use IronWord on iOS
.NET MAUI (Multi-platform App UI) enables you to build native applications across Android, iOS, Windows, and macOS using a single .NET codebase. With IronWord, .NET developers can easily create, read, edit, and save Microsoft Word (.docx) documents - fully cross-platform and without requiring Microsoft Office.
IronWord works seamlessly on iOS via the shared .NET MAUI codebase using the standard IronWord NuGet package - there is no platform-specific version needed.
Install the IronWord NuGet Package
IronWord is available as a standard cross-platform NuGet package and supports all major .NET MAUI targets, including iOS.
Create a .NET MAUI Project
In Visual Studio:
- Go to File > New > Project.
- Under Multiplatform, select .NET MAUI App.
- Name your project (e.g., IronWordMauiIOS) and click Create.
Add IronWord to Your Project
You can add the package via NuGet Package Manager or by editing your .csproj file:
<ItemGroup>
<PackageReference Include="IronWord" Version="2026.7.2" />
</ItemGroup>
You don't need platform conditions - IronWord works across all targets automatically.
Create the App Interface in XAML
Add a simple UI to load, edit, and save Word documents. To do this, start by adding this code to the MainPage.xml code:
<?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>
This creates buttons and an editor UI for loading/saving Word content.
Use IronWord in Shared Code
In your MainPage.xaml.cs, implement reading and writing DOCX documents using 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();
}
}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 NamespaceProject File Overview
Your project structure should now include:
IronWordMauiIOS/
│
├── MainPage.xaml ← UI Layout
├── MainPage.xaml.cs ← Logic for UI (Word document actions)
├── IronWordMauiIOS.csproj ← References IronWord NuGet package
├── Platforms/ios/ ← iOS-specific config (no changes needed here)
└── ...
Run the Project
- Set the target to iOS Simulator.
- Press Run.
- Test reading and writing .docx documents directly on your simulated iOS device.
Final Notes
- Fully cross-platform (iOS, Android, Windows, macOS)
- No need for Microsoft Office or Interop
- 100% C# / .NET MAUI-native
- Works offline
- Excellent for building editors, resume builders, document viewers
Frequently Asked Questions
What is the purpose of IronWord in iOS applications?
IronWord allows developers to create, read, edit, and save Microsoft Word (.docx) documents in iOS applications using a .NET codebase, without the need for Microsoft Office.
Is a platform-specific version of IronWord required for iOS?
No, IronWord works seamlessly on iOS via the shared .NET MAUI codebase using the standard IronWord NuGet package, eliminating the need for a platform-specific version.
How can I install IronWord for my iOS project?
You can install IronWord by adding the IronWord NuGet package to your .NET MAUI project, which supports all major targets including iOS.
What are the steps to add IronWord to a .NET MAUI project?
You can add IronWord to your .NET MAUI project through NuGet Package Manager or by editing the .csproj file to include IronWord as a package reference.
How is the user interface for IronWord created in iOS applications?
The user interface for IronWord in iOS applications can be created using XAML with elements such as buttons and text editors for document interaction, as shown in the MainPage.xml code examples.
How does IronWord manage document input and output in a MAUI project?
IronWord manages document input/output through methods like OpenDocx and SaveDocx, that handle reading and writing .docx files in the MainPage.xaml.cs code.
Do I need Microsoft Office installed to use IronWord on iOS?
No, Microsoft Office is not required to use IronWord, which is a native .NET MAUI solution that operates independently of Office.
Can IronWord run offline in iOS applications?
Yes, IronWord is capable of running offline in iOS applications as it is entirely C#/.NET MAUI-native.
What is required to run an IronWord project on an iOS simulator?
To run an IronWord project on an iOS simulator, set the target to iOS Simulator in your development environment and press Run to test .docx document operations.

Kye Stuart merges coding passion and writing skill at Iron Software. Educated at Yoobee College in software deployment, they now transform complex tech concepts into clear educational content. Kye values lifelong learning and embraces new tech challenges.