79 lines
3.2 KiB
C#
79 lines
3.2 KiB
C#
using NUnit.Framework;
|
|
using QuestPDF.Examples.Engine;
|
|
using QuestPDF.Fluent;
|
|
using SkiaSharp;
|
|
using SkiaSharp.HarfBuzz;
|
|
|
|
namespace QuestPDF.Examples
|
|
{
|
|
public class TextShapingTests
|
|
{
|
|
// [Test]
|
|
// public void ShapeText()
|
|
// {
|
|
// using var textPaint = new SKPaint
|
|
// {
|
|
// Color = SKColors.Black,
|
|
// Typeface = SKTypeface.CreateDefault(),
|
|
// IsAntialias = true,
|
|
// TextSize = 20
|
|
// };
|
|
//
|
|
// using var backgroundPaint = new SKPaint
|
|
// {
|
|
// Color = SKColors.LightGray
|
|
// };
|
|
//
|
|
// RenderingTest
|
|
// .Create()
|
|
// .PageSize(550, 250)
|
|
// .ProduceImages()
|
|
// .ShowResults()
|
|
// .Render(container =>
|
|
// {
|
|
// //var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec odio ipsum, aliquam a neque a, lacinia vehicula lectus.";
|
|
// //var arabic = "ينا الألم. في بعض الأحيان ونظراً للالتزامات التي يفرضها علينا الواجب والعمل سنتنازل غالباً ونرفض الشعور";
|
|
//
|
|
// var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
|
|
// var arabic = "ينا الألم. في بعض الأحيان ونظراً للالتزامات التي يفرضها علينا";
|
|
//
|
|
// var text = arabic;
|
|
// var metrics = textPaint.FontMetrics;
|
|
//
|
|
// container
|
|
// .Padding(25)
|
|
// .Canvas((canvas, space) =>
|
|
// {
|
|
// canvas.Translate(0, 20);
|
|
//
|
|
// var width = MeasureText(text, textPaint);
|
|
// var widthReal = textPaint.MeasureText(text);
|
|
// canvas.DrawRect(0, metrics.Descent, width, metrics.Ascent - metrics.Descent, backgroundPaint);
|
|
//
|
|
// canvas.DrawShapedText(text, 0, 0, textPaint);
|
|
//
|
|
// canvas.Translate(0, 40);
|
|
// canvas.DrawText(text, 0, 0, textPaint);
|
|
// });
|
|
// });
|
|
// }
|
|
|
|
[Test]
|
|
public void MeasureTest()
|
|
{
|
|
using var textPaint = new SKPaint
|
|
{
|
|
Color = SKColors.Black,
|
|
Typeface = SKTypeface.CreateDefault(),
|
|
IsAntialias = true,
|
|
TextSize = 20
|
|
};
|
|
|
|
var lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec odio ipsum, aliquam a neque a, lacinia vehicula lectus.";
|
|
var arabic = "ينا الألم. في بعض الأحيان ونظراً للالتزامات التي يفرضها علينا";
|
|
// 012345678901234567890123456789012345678901234567890123456
|
|
var shaper = new SKShaper(textPaint.Typeface);
|
|
var result = shaper.Shape(lorem, textPaint);
|
|
}
|
|
}
|
|
} |