feat: rebrand to MMD PDF, single corporate theme, and remove original text under an edit
- Services/PdfRedactText.cs: strip text whose origin falls inside a CoverAnnotation from the page content stream at save time, hooked into PdfBurn.DrawAnnotationsIntoDoc. Fixes edited values staying recoverable by text extraction. - Themes/MMD.xaml replaces all thirteen themes; picker and accent strip removed; no dark mode. - Rename KillerPDF -> MMD PDF across code, resources, packaging and locale strings; new icon. - Remove the upstream author credit and the in-app install button.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
using MmdPdf.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace MmdPdf.Tests;
|
||||
|
||||
public sealed class TextRunServiceTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("English text", false)]
|
||||
[InlineData("متن فارسی", true)]
|
||||
[InlineData("نص عربي", true)]
|
||||
[InlineData("טקסט עברי", true)]
|
||||
[InlineData("1234", false)]
|
||||
public void DetectsLineDirection(string text, bool expected)
|
||||
=> Assert.Equal(expected, TextRunService.IsRightToLeftText(new[] { text }));
|
||||
|
||||
[Fact]
|
||||
public void RightToLeftCaretMovesFromRightEdgeToLeftEdge()
|
||||
{
|
||||
var runs = new PageTextRuns();
|
||||
runs.Chars.Add(new RunChar("א", 90, 100, 0, 0));
|
||||
runs.Chars.Add(new RunChar("ב", 80, 90, 0, 0));
|
||||
runs.Chars.Add(new RunChar("ג", 70, 80, 0, 0));
|
||||
runs.Lines.Add(new RunLine
|
||||
{
|
||||
Start = 0,
|
||||
Count = 3,
|
||||
Top = 20,
|
||||
Bottom = 10,
|
||||
Left = 70,
|
||||
Right = 100,
|
||||
RightToLeft = true,
|
||||
});
|
||||
|
||||
Assert.Equal(0, TextRunService.CaretFromPoint(runs, 101, 15));
|
||||
Assert.Equal(1, TextRunService.CaretFromPoint(runs, 89, 15));
|
||||
Assert.Equal(3, TextRunService.CaretFromPoint(runs, 69, 15));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user