iText параграф накладывается на ранее сохранённый параграф
Мне необходимо выставить текст с определённым шрифтом и размером в определённом месте, поэтому счёл StampAnnotation не подходящим, т.к. не увидел, где и как можно установить свой шрифт. Проблема заключается в том, что после создания параграфа и проставки текста, может понадобится его изменить, но вместо проставки нового значения получется, что текст накладывается ("25шт." наложилось на "363936393639шт.", но притом в Adobe Acrobate Pro этот текст определяется как единый параграф)
Я проставляю значение следующим способом:
var font = PdfFontFactory.CreateFont("C:\\Windows\\Fonts\\GOST Common.ttf", "Identity-H");
_workingDocument.SetFont(font);
string utf8String = count + "шт.";
var writableText = new Paragraph(utf8String).SetItalic().SetBold();
switch (_format)
{
case Formats.A4Book:
x = 530;
y = 175;
ClearText(text, x, y); //Пытаюсь удалить значение при помощи PdfCleaner.AutoSweepCleanUp
AddImage(x, y); //Проставляю картинку, которая перекрывает часть другого текста, который не очищается и не должен в методе ClearText
writableText.SetFontSize(20).SetFixedPosition(x - 300, y, 350).SetTextAlignment(TextAlignment.RIGHT)
.SetHorizontalAlignment(HorizontalAlignment.RIGHT);
_workingDocument.Add(writableText);
break;
case Formats.A3Album:
... // То же самое, но другие x и y
case Formats.A3Book:
... // То же самое, но другие x и y
default:
...
}
Логика очистки:
int countTry = 0;
ICleanupStrategy cleanupStrategy =
new RegexBasedCleanupStrategy(new Regex(@"(.*)[0-9]{1,}(.*)шт(.*)", RegexOptions.IgnoreCase))
.SetRedactionColor(ColorConstants.WHITE);
while (countTry < 3)
{
try
{
PdfCleaner.AutoSweepCleanUp(_document.GetFirstPage(), cleanupStrategy);
}
catch
{
// ignore
}
finally
{
countTry++;
}
}
iText у меня версии 8.0.5, iText.pdfsweep 4.0.3, itext.bouncy-castle-adapter 8.0.5, .Net 8
Ответы (1 шт):
Проблема оказалась в том, что System.Drawing.Common был установлен неявно и был устаревший, в итоге явная установка 9.0.0 помогла решить часть проблем с очисткой, но увы, всё равно удаление текста происходит не на всех файлах.
