| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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);
- }
- }
- }
|