41 lines
1.8 KiB
C#
41 lines
1.8 KiB
C#
using LehrerApp.Templating;
|
|
using Xunit;
|
|
|
|
namespace LehrerApp.Desktop.Tests;
|
|
|
|
public sealed class _TempFlowCheck2
|
|
{
|
|
[Fact]
|
|
public void MarkerTest()
|
|
{
|
|
var outDir = @"C:\Users\SHedt\AppData\Local\Temp\claude\d--source-LehrerApp\fb3681df-caaf-4f2d-9996-e343e44f5554\scratchpad";
|
|
Directory.CreateDirectory(outDir);
|
|
|
|
var commands = new List<DrawingCommand>
|
|
{
|
|
new DrawStringEx(0, 0, 12, 170, "TOP-0", DrawingTextAlignment.AlignLeft, 10, Color: "#000000"),
|
|
new DrawStringEx(0, 90, 12, 170, "NEARBOTTOM-90", DrawingTextAlignment.AlignLeft, 10, Color: "#000000"),
|
|
new DrawStringEx(0, 105, 12, 170, "AFTERBOUNDARY-105", DrawingTextAlignment.AlignLeft, 10, Color: "#000000"),
|
|
new DrawStringEx(0, 190, 12, 170, "BOTTOM-190", DrawingTextAlignment.AlignLeft, 10, Color: "#000000"),
|
|
};
|
|
var drawing = new DrawingValue(commands, 200);
|
|
|
|
var manifest = new TemplateManifest
|
|
{
|
|
Id = "marker", Name = "Marker",
|
|
Placeholders = [new("Marker", PlaceholderType.Drawing, true)],
|
|
};
|
|
var layout = "PAGE 210 297 mm\nFLOWDRAWBOX 20 20 170 100 $Marker\n";
|
|
var loadedLayout = new LayoutParser().Parse(layout);
|
|
var loaded = new LoadedTemplate(manifest, loadedLayout, new Dictionary<string, byte[]>());
|
|
var provider = new FakeProvider(new Dictionary<string, PlaceholderValue> { ["Marker"] = drawing });
|
|
|
|
var pngs = new QuestTemplateRenderer().RenderPagesToPng(loaded, provider, dpi: 150);
|
|
for (var i = 0; i < pngs.Count; i++)
|
|
File.WriteAllBytes(Path.Combine(outDir, $"marker2-{i}.png"), pngs[i]);
|
|
}
|
|
|
|
private sealed class FakeProvider(IReadOnlyDictionary<string, PlaceholderValue> values) : ITemplateDataProvider
|
|
{ public IReadOnlyDictionary<string, PlaceholderValue> GetValues() => values; }
|
|
}
|