Como usar o IronWord no iOS
O .NET MAUI (Multi-platform App UI) permite criar aplicativos nativos para Android, iOS, Windows e macOS usando uma única base de código .NET . Com o IronWord, os desenvolvedores .NET podem criar, ler, editar e salvar documentos do Microsoft Word (.docx) com facilidade — totalmente multiplataforma e sem a necessidade do Microsoft Office.
O IronWord funciona perfeitamente no iOS através da base de código .NET MAUI compartilhada, utilizando o pacote NuGet padrão do IronWord — não é necessária nenhuma versão específica para cada plataforma.
Instale o pacote NuGet IronWord.
O IronWord está disponível como um pacote NuGet multiplataforma padrão e é compatível com todos os principais destinos .NET MAUI , incluindo iOS.
Install-Package IronWord
Criar um projeto .NET MAUI
No Visual Studio:
- Vá para Arquivo > Novo > Projeto.
- Em Multiplataforma, selecione Aplicativo .NET MAUI .
- Dê um nome ao seu projeto (por exemplo, IronWordMauiIOS) e clique em Criar.
Adicione IronWord ao seu projeto
Você pode adicionar o pacote através do Gerenciador de Pacotes NuGet ou editando seu arquivo .csproj:
<ItemGroup>
<PackageReference Include="IronWord" Version="2025.5.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IronWord" Version="2025.5.0" />
</ItemGroup>
Você não precisa de configurações específicas de plataforma — o IronWord funciona automaticamente em todos os sistemas operacionais.
Crie a interface do aplicativo em XAML.
Adicione uma interface de usuário simples para carregar, editar e salvar documentos do Word. Para fazer isso, comece adicionando este código ao código 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>
Isso cria botões e uma interface de editor para carregar/salvar conteúdo do Word.
Usar IronWord em código compartilhado
No seu arquivo MainPage.xaml.cs, implemente a leitura e a gravação de documentos DOCX usando o 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
Visão geral do arquivo do projeto
A estrutura do seu projeto agora deve incluir:
IronWordMauiIOS/
│
├── MainPage.xaml ← Layout da interface do usuário
├── MainPage.xaml.cs ← Lógica para a interface do usuário (ações do documento Word)
├── IronWordMauiIOS.csproj ← Referências Pacote NuGet IronWord
├── Plataformas/ios/ ← Configuração específica para iOS (nenhuma alteração necessária aqui)
└── ...
Execute o projeto
- Defina o destino como Simulador do iOS.
- Clique em Executar.
- Teste a leitura e a gravação de documentos .docx diretamente no seu dispositivo iOS simulado.
Notas finais
- Totalmente multiplataforma (iOS, Android, Windows, macOS)
- Não há necessidade do Microsoft Office ou Interop
- 100% C# / .NET MAUI-nativo
- Funciona offline
- Excelente para editores de conteúdo, criadores de currículos e visualizadores de documentos.
Perguntas frequentes
O que é o IronWord e como ele pode ser usado no iOS?
IronWord é uma biblioteca poderosa projetada para lidar com documentos do Word em aplicativos .NET, incluindo iOS. Ela permite que os desenvolvedores criem, manipulem e convertam documentos do Word de forma integrada em seus aplicativos móveis.
Como faço para integrar o IronWord ao meu projeto iOS?
Para integrar o IronWord ao seu projeto iOS, você precisa adicionar a biblioteca IronWord à sua solução .NET, configurar seu projeto para referenciá-la e usar as APIs fornecidas para gerenciar documentos do Word.
Quais são os requisitos de sistema para usar o IronWord no iOS?
O IronWord requer um ambiente .NET compatível em sua configuração de desenvolvimento iOS. Certifique-se de que seu ambiente de desenvolvimento esteja atualizado e suporte as estruturas necessárias para uma integração perfeita.
O IronWord consegue converter documentos do Word para outros formatos no iOS?
Sim, o IronWord pode converter documentos do Word para vários formatos, como PDF, em seus aplicativos iOS, permitindo o manuseio e compartilhamento versáteis de documentos.
O IronWord oferece suporte à manipulação de documentos no iOS?
Com certeza, o IronWord oferece suporte a uma ampla gama de manipulações de documentos, incluindo edição de texto, inserção de imagens e gerenciamento de propriedades do documento diretamente em aplicativos iOS.
É possível criar documentos do Word do zero usando o IronWord no iOS?
Sim, o IronWord permite criar novos documentos do Word do zero no iOS, oferecendo um conjunto completo de ferramentas para adicionar conteúdo, formatação e estilos programaticamente.
Como o IronWord lida com a segurança de documentos do Word em aplicativos iOS?
O IronWord inclui recursos para gerenciar a segurança de documentos, como proteção por senha e criptografia, garantindo que seus documentos do Word permaneçam seguros em aplicativos iOS.
Existem projetos de exemplo disponíveis para usar o IronWord no iOS?
Sim, a Iron Software fornece projetos de exemplo e documentação para ajudar os desenvolvedores a começarem rapidamente a usar o IronWord no iOS, demonstrando vários recursos e casos de uso.
O IronWord requer alguma licença adicional para implantação em iOS?
O IronWord requer uma licença válida para implantação em ambientes de produção, incluindo aplicativos iOS. Certifique-se de verificar os termos da licença para estar em conformidade com as diretrizes de uso.

