Create Word file in Xamarin
GemBox.Document is a standalone .NET component with cross-platform support. You can use it on non-Windows platforms like Xamarin and Mono, enabling you to run it on Android and iOS mobile devices.
With GemBox.Document you can process your documents (read, write, convert, and edit Word files) from the native mobile apps.
The following example shows how you can create a Word file in Xamarin.Forms mobile application.
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="MainPage">
<StackLayout Padding="50"
Spacing="20">
<Label Text="GemBox.Document Example"
HorizontalOptions="Center"
FontSize="Large"
Margin="0,0,0,30" />
<Editor x:Name="text"
VerticalOptions="FillAndExpand"
Text="Hi! This document was generated with GemBox.Document library." />
<ActivityIndicator x:Name="activity" />
<Button x:Name="button"
Text="Create document"
Clicked="Button_Clicked"/>
</StackLayout>
</ContentPage>
using GemBox.Document;
using System;
using System.ComponentModel;
using System.IO;
using System.Threading.Tasks;
using Xamarin.Essentials;
using Xamarin.Forms;
public partial class MainPage : ContentPage
{
public MainPage()
{
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
InitializeComponent();
}
private string CreateDocument()
{
var document = new DocumentModel();
document.Sections.Add(new Section(document,
new Paragraph(document, text.Text)));
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Example.docx");
document.Save(filePath);
return filePath;
}
private async void Button_Clicked(object sender, EventArgs e)
{
button.IsEnabled = false;
activity.IsRunning = true;
try
{
var filePath = await Task.Run(() => CreateDocument());
await Launcher.OpenAsync(new OpenFileRequest(Path.GetFileName(filePath), new ReadOnlyFile(filePath)));
}
catch (Exception ex)
{
await DisplayAlert("Error", ex.Message, "Close");
}
activity.IsRunning = false;
button.IsEnabled = true;
}
}
Imports GemBox.Document
Imports System
Imports System.ComponentModel
Imports System.IO
Imports System.Threading.Tasks
Imports Xamarin.Essentials
Imports Xamarin.Forms
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
InitializeComponent()
End Sub
Private Function CreateDocument() As String
Dim document As New DocumentModel()
document.Sections.Add(New Section(document,
New Paragraph(document, Text.Text)))
Dim filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Example.docx")
document.Save(filePath)
Return filePath
End Function
Private Async Sub Button_Clicked(sender As Object, e As EventArgs)
button.IsEnabled = False
activity.IsRunning = True
Try
Dim filePath = Await Task.Run(Function() CreateDocument())
Await Launcher.OpenAsync(New OpenFileRequest(Path.GetFileName(filePath), New ReadOnlyFile(filePath)))
Catch ex As Exception
Await DisplayAlert("Error", ex.Message, "Close")
End Try
activity.IsRunning = False
button.IsEnabled = True
End Sub
End Class
Using full functionality of GemBox.Document in Xamarin application requires adjustments explained in detail on Supported Platforms help page.