В современном мире работа с документами занимает важное место. Особенно часто возникает необходимость обработки документов с содержимым, ориентированным по RTL (Right-To-Left), таким как арабский, иврит или персидский текст. Решение этой задачи с помощью стандартных инструментов может быть сложным, особенно если точность и качество имеют решающее значение.
В этой статье мы рассмотрим, как с помощью библиотеки SautinSoft.Document на языке C# осуществлять конвертацию документов, содержащих RTL-контент, а также ответим на вопросы: какие преимущества дает такой подход, для чего он пригоден, и насколько популярна такая технология среди разработчиков.
Right-to-left (RTL) — это свойство языка, определяющее направление написания текста справа налево. Некоторые языки, использующие RTL, включают арабский, иврит, персидский, урду и др. Большинство RTL-языков, таких как арабский и иврит, являются двунаправленными: в одном предложении могут чередоваться направления текста — как справа налево, так и слева направо. Эти языки требуют особого подхода, так как их чтение и отображение имеют специфические особенности:
Обработка таких документов требует не только корректного отображения, но и возможности их конвертации (например, в PDF, DOCX, HTML) для дальнейшего использования или публикации.
Обратите внимание, что для корректной обработки RTL-текста важно, чтобы исходный файл имел правильное форматирование, а также чтобы библиотека поддерживала необходимые языковые особенности.
Полный код
using SautinSoft.Document;
using System;
using System.IO;
using System.Linq;
using System.Reflection.Metadata;
namespace Sample
{
class Sample
{
static void Main(string[] args)
{
// Get your free trial key here:
// https://sautinsoft.com/start-for-free/
ConvertRTLcontent();
}
/// <summary>
/// How to convert documents with Right-To-Left content.
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/document/help/net/developer-guide/convert-documents-with-right-to-left-content.php
/// </remarks>
public static void ConvertRTLcontent()
{
string sourcePath = @"..\..\..\RTL.docx";
string destPath = "RTL.pdf";
// Load document with arabic, hindi, hebrew content.
DocumentCore dc = DocumentCore.Load(sourcePath);
// Save the document as PDF.
dc.Save(destPath, new PdfSaveOptions());
// Show the source and the dest documents.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(sourcePath) { UseShellExecute = true });
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(destPath) { UseShellExecute = true });
}
}
}Imports SautinSoft.Document
Imports System
Imports System.IO
Imports System.Linq
Imports System.Reflection.Metadata
Namespace Sample
Friend Class Sample
Shared Sub Main(ByVal args() As String)
' Get your free trial key here:
' https://sautinsoft.com/start-for-free/
ConvertRTLcontent()
End Sub
''' <summary>
''' How to convert documents with Right-To-Left content.
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/convert-documents-with-right-to-left-content.php
''' </remarks>
Public Shared Sub ConvertRTLcontent()
Dim sourcePath As String = "..\..\..\RTL.docx"
Dim destPath As String = "RTL.pdf"
' Load document with arabic, hindi, hebrew content.
Dim dc As DocumentCore = DocumentCore.Load(sourcePath)
' Save the document as PDF.
dc.Save(destPath, New PdfSaveOptions())
' Show the source and the dest documents.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(sourcePath) With {.UseShellExecute = True})
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(destPath) With {.UseShellExecute = True})
End Sub
End Class
End Namespace
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: