iTextSharp STRIKETHRU 无法正常工作。删除全文

问题描述 投票:0回答:1

我正在尝试使用 STRIKETHRU 片段存档文本 我尝试了这种方法,但不明白为什么它不起作用

所需输出:blabla 123 blabla

我得到的是:blabla 123 blabla

我的技术堆栈是.net


using iTextSharp.text;
using iTextSharp.text.pdf;

//.........

var t1 = new Font(Font.HELVETICA, 20, Font.DEFAULTSIZE);
            var t2 = new Font(Font.HELVETICA, 10, Font.STRIKETHRU);

            var p1 = new Phrase("0123456789", t1);
            var p2 = new Phrase("0123456789", t2);
            var p3 = new Phrase("0123456789", t1);
            var p4 = new Phrase("0123456789", t1);

            p1.AddSpecial(p2);
            p1.AddSpecial(p3);

            PdfPTable datatable1 = new PdfPTable(1);
            datatable1.TotalWidth = 700f;
            datatable1.LockedWidth = false;
            datatable1.DefaultCell.Border = Rectangle.NO_BORDER;

            datatable1.AddCell(" ");
            datatable1.AddCell(p1);
            datatable1.AddCell(" ");
            datatable1.AddCell(p1);
            datatable1.AddCell(" ");
            datatable1.AddCell(p2);
            datatable1.AddCell(" ");
            datatable1.AddCell(p3);
            datatable1.AddCell(" ");
            datatable1.AddCell(p4);
            datatable1.AddCell(new Phrase(new Chunk("123", t1)));
            datatable1.AddCell(new Phrase(new Chunk("123", t2)));

我也尝试过 p1.Add(p2);结果相同

c# itext
1个回答
0
投票

答案是这样的

var p1 = Phrase.GetInstance("blabla ");
p1.Font = new Font(Font.HELVETICA, 20, Font.DEFAULTSIZE);


var p2 = Phrase.GetInstance("123");
p2.Font = new Font(Font.HELVETICA, 20, Font.STRIKETHRU);

给出结果:blabla 123

© www.soinside.com 2019 - 2024. All rights reserved.