Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Videos/LaTeXEquation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This repository provides an example of how to work with LaTeX equations in a Word document using the **Syncfusion .NET Word Library (DocIO)**. It demonstrates how to create, add, and edit LaTeX equations in Word documents.

## Process behind Field Integration
## Process Behind LaTeX Equation Integration

This sample shows how LaTeX syntax can be used to insert professional mathematical equations into Word documents. LaTeX is widely used in scientific and academic fields for typesetting complex formulas.

Expand Down
76 changes: 76 additions & 0 deletions Videos/WordToRTF/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using WordToRTF.Models;
using Syncfusion.DocIO;
using Syncfusion.DocIO.DLS;

namespace WordToRTF.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}

public IActionResult WordToRTF()
{
// Open the Word document as a file stream
FileStream fileStream = new FileStream("Data\\Template.docx", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

// Load the stream into a DocIO WordDocument instance
WordDocument document = new WordDocument(fileStream, FormatType.Docx);

// Create a memory stream to store the converted RTF content
MemoryStream outputStream = new MemoryStream();

// Save the document in RTF format
document.Save(outputStream, FormatType.Rtf);

// Close the document to release resources
document.Close();

// Return the downloadable file
return File(outputStream, "application/rtf", "WordToRTF.rtf");
}

public IActionResult RTFToWord()
{
// Open the RTF file as a file stream
FileStream fileStream = new FileStream("Data\\Input.rtf", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

// Load the stream into a DocIO WordDocument instance
WordDocument document = new WordDocument(fileStream, FormatType.Rtf);

// Create a memory stream to store the converted Word content
MemoryStream outputStream = new MemoryStream();

// Save the document in DOCX format
document.Save(outputStream, FormatType.Docx);

// Close the document to release resources
document.Close();

// Return the downloadable file
return File(outputStream, "application/docx", "RTFToWord.docx");
}

public IActionResult Index()
{
return View();
}

public IActionResult Privacy()
{
return View();
}

[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
4,893 changes: 4,893 additions & 0 deletions Videos/WordToRTF/Data/Input.rtf

Large diffs are not rendered by default.

Binary file added Videos/WordToRTF/Data/Template.docx
Binary file not shown.
9 changes: 9 additions & 0 deletions Videos/WordToRTF/Models/ErrorViewModel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace WordToRTF.Models
{
public class ErrorViewModel
{
public string? RequestId { get; set; }

public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
}
}
36 changes: 36 additions & 0 deletions Videos/WordToRTF/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
namespace WordToRTF
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();
}
}
}
38 changes: 38 additions & 0 deletions Videos/WordToRTF/Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:49231",
"sslPort": 44321
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5241",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7158;http://localhost:5241",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
23 changes: 23 additions & 0 deletions Videos/WordToRTF/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# How to Convert a Word Document to an RTF File Using the .NET Word Library

This repository provides an example of how to convert a Word document to RTF, and an RTF file to a Word document using the **Syncfusion .NET Word Library (DocIO)**.

## Process Behind Word–RTF Conversion

This sample shows how easily you can switch between Word (.docx) and Rich Text Format (.rtf) using the Syncfusion DocIO library. These conversions are useful when you need to:

- Share documents in a lightweight, widely supported RTF format.
- Preserve text formatting while avoiding the full complexity of a DOCX file.
- Integrate RTF files into applications that require plain rich-text formatting.

Using the Syncfusion DocIO library, you can:

- Convert a Word document (.docx) to an RTF file (.rtf).
- Convert an RTF file (.rtf) back to a Word document (.docx).

## Steps to use the sample

1. Open the ASP.NET Core application where the Syncfusion DocIO package is installed.
2. Run the application and click the following buttons:
- **Word to RTF**: Converts an existing Word document to an RTF file.
- **RTF to Word**: Converts an existing RTF file back to a Word document.
17 changes: 17 additions & 0 deletions Videos/WordToRTF/Views/Home/Index.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@{
ViewData["Title"] = "Home Page";
}

<div>
<h2 style="margin-bottom: 20px"> Word to RTF Conversions </h2>
<div>
<button style="width: 200px; margin-bottom: 20px; height: 40px;display:block;font-size:18px;"
onclick="location.href='@Url.Action("WordToRTF", "Home")'">
Word to RTF
</button>
<button style="width: 200px; margin-bottom: 20px; height: 40px;display:block;font-size:18px;"
onclick="location.href='@Url.Action("RTFToWord", "Home")'">
RTF to Word
</button>
</div>
</div>
6 changes: 6 additions & 0 deletions Videos/WordToRTF/Views/Home/Privacy.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@{
ViewData["Title"] = "Privacy Policy";
}
<h1>@ViewData["Title"]</h1>

<p>Use this page to detail your site's privacy policy.</p>
25 changes: 25 additions & 0 deletions Videos/WordToRTF/Views/Shared/Error.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
@model ErrorViewModel
@{
ViewData["Title"] = "Error";
}

<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>

@if (Model.ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@Model.RequestId</code>
</p>
}

<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
49 changes: 49 additions & 0 deletions Videos/WordToRTF/Views/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - WordToRTF</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
<link rel="stylesheet" href="~/WordToRTF.styles.css" asp-append-version="true" />
</head>
<body>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container-fluid">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">WordToRTF</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<div class="container">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>

<footer class="border-top footer text-muted">
<div class="container">
&copy; 2025 - WordToRTF - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</div>
</footer>
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
48 changes: 48 additions & 0 deletions Videos/WordToRTF/Views/Shared/_Layout.cshtml.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */

a.navbar-brand {
white-space: normal;
text-align: center;
word-break: break-all;
}

a {
color: #0077cc;
}

.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}

.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}

.border-top {
border-top: 1px solid #e5e5e5;
}
.border-bottom {
border-bottom: 1px solid #e5e5e5;
}

.box-shadow {
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

button.accept-policy {
font-size: 1rem;
line-height: inherit;
}

.footer {
position: absolute;
bottom: 0;
width: 100%;
white-space: nowrap;
line-height: 60px;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
3 changes: 3 additions & 0 deletions Videos/WordToRTF/Views/_ViewImports.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@using WordToRTF
@using WordToRTF.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
3 changes: 3 additions & 0 deletions Videos/WordToRTF/Views/_ViewStart.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@{
Layout = "_Layout";
}
13 changes: 13 additions & 0 deletions Videos/WordToRTF/WordToRTF.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Syncfusion.DocIO.Net.Core" Version="*" />
</ItemGroup>

</Project>
8 changes: 8 additions & 0 deletions Videos/WordToRTF/appsettings.Development.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}
9 changes: 9 additions & 0 deletions Videos/WordToRTF/appsettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
Loading
Loading