diff --git a/watermarker/src/commonMain/kotlin/fileWatermarker/TextWatermarker.kt b/watermarker/src/commonMain/kotlin/fileWatermarker/TextWatermarker.kt index 3388334..1fa7397 100644 --- a/watermarker/src/commonMain/kotlin/fileWatermarker/TextWatermarker.kt +++ b/watermarker/src/commonMain/kotlin/fileWatermarker/TextWatermarker.kt @@ -265,14 +265,16 @@ class TextWatermarker( val status = Status() val watermarks = ArrayList() + val stringBuilder = StringBuilder(file.content) + var previousStart = 0 for ((start, end) in sanitizedWatermarkRanges) { val content = - StringBuilder(file.content) - .drop(start) + stringBuilder + .deleteRange(0, start - previousStart) .take(end - start + 1) .filter { char -> char in transcoding.alphabet } - if (content.count() > 0) { + if (content.isNotEmpty()) { val decoded = with(transcoding.decode(content.asSequence())) { if (!hasValue) { @@ -284,6 +286,7 @@ class TextWatermarker( watermarks.add(Watermark(decoded)) } + previousStart = start } if (watermarkRanges.count() <= 0 && watermarks.isNotEmpty()) {