C# Xamarin dotnet Spire.pdf не читает арабский языкC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# Xamarin dotnet Spire.pdf не читает арабский язык

Сообщение Anonymous »

я использую spire.pdf на платформе xamarin, цель – экспортировать данные в формате PDF. Код, который будет добавлен ниже, работает отлично, но я столкнулся с проблемой с арабским языком.

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Tables;
using System.Drawing;
using Spire.Pdf.ColorSpace;
using System.Collections.ObjectModel;
using System.Data;

namespace Test2
{
public partial class MainPage : ContentPage
{
List cars;
public MainPage()
{
InitializeComponent();
cars = new List()
{
new Car{ Name="مرسيدس",Model="E350",Color="Brown"},
new Car{ Name="BMW",Model="i530",Color="Red"},
new Car{ Name="Toyota",Model="Corolla",Color="White"},
new Car{ Name="Hunda",Model="Civic",Color="Silver"},
new Car{ Name="Toyota",Model="Carina",Color="Green"}
};
}

private void btnPrint_Clicked(object sender, EventArgs e)
{

//Create a PdfDocument object
PdfDocument doc = new PdfDocument();

//Add a page
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40));

//Create a PdfTable object
PdfTable table = new PdfTable();

//Draw the text - alignment
PdfTrueTypeFont font = new PdfTrueTypeFont("Arial", 12f,PdfFontStyle.Bold,true);
PdfSolidBrush brush = new PdfSolidBrush(System.Drawing.Color.Blue);

PdfStringFormat rightAlignment = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
page.Canvas.DrawString("عبدالله للتجارة والمقاولات", font, brush, page.Canvas.ClientSize.Width, 30, rightAlignment);
page.Canvas.DrawString("نقليات-حفريات-مواد بناء", font, brush, page.Canvas.ClientSize.Width, 60, rightAlignment);

//Set font for header and the rest cells
table.Style.DefaultStyle.Font = new PdfTrueTypeFont("Arial", 12f, PdfFontStyle.Regular,true);
table.Style.HeaderStyle.Font = new PdfTrueTypeFont("Arial", 12f, PdfFontStyle.Bold,true);

//The data presented by list converted to datatable
ListtoDataTableConverter converter = new ListtoDataTableConverter();
DataTable dt = converter.ToDataTable(cars);

//Set the datatable as the data source of table
table.DataSource = dt;

//Show header(the header is hidden by default)
table.Style.ShowHeader = true;

//Set font color and backgroud color of header row
table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.Gray;
table.Style.HeaderStyle.TextBrush = PdfBrushes.White;

//Set text alignment in header row
table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);

//Set text alignment in other cells
for (int i = 0; i < table.Columns.Count; i++)
{
table.Columns[i].StringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
}

//Register with BeginRowLayout event
table.BeginRowLayout += Table_BeginRowLayout;

//Draw table on the page
table.Draw(page, new PointF(0, 80));

doc.SaveToFile("/storage/emulated/0/Download/2.pdf");
DisplayAlert("Create PDF", "PDF has been created succcessfully", "OK");
}

//Event handler
private static void Table_BeginRowLayout(object sender, BeginRowLayoutEventArgs args)
{
//Set row height
args.MinimalHeight = 20f;

//Alternate row color
if (args.RowIndex <  0)
{
return;
}
if (args.RowIndex % 2 == 1)
{
args.CellStyle.BackgroundBrush = PdfBrushes.LightGray;
}
else
{
args.CellStyle.BackgroundBrush = PdfBrushes.White;
}
}
}
}

тестирую приложение на своем физическом телефоне Samsung Galaxy M12.
Я думал, что проблема связана с типом шрифта на моем физическом телефоне, поэтому я попытался изменить значение по умолчанию, но не знал, как это сделать, потому что вы можете выбрать экономичные или фиксированные шрифты.

Подробнее здесь: https://stackoverflow.com/questions/786 ... c-language
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Создание PDF со смешанным содержимым: арабский язык всегда перевернут
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Почему JTextArea не может показать арабский язык [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • IOS: средство форматирования даты с языковым кодом «ar_AE», не преобразующее дату в арабский язык.
    Anonymous » » в форуме IOS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как изменить язык на арабский диалог DatePicker с выбором года
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как изменить язык на арабский диалог DatePicker с выбором года
    Anonymous » » в форуме Android
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»