提问人: 提问时间:10/29/2012 最后编辑:Omar 更新时间:3/30/2013 访问量:3281
如何在 iTextSharp 字符串中使用 HTML 标签
How do i use HTML tags in iTextSharp string
问:
我有一个 iTextSharp 页脚模板方法,如下所示:
public PdfTemplate footerTemplate(){
PdfTemplate footer = cb.CreateTemplate(500, 50);
footer.BeginText();
BaseFont bf2 = BaseFont.CreateFont(BaseFont.TIMES_ITALIC, "windows-1254", BaseFont.NOT_EMBEDDED);
footer.SetFontAndSize(bf2, 11);
footer.SetColorStroke(BaseColor.DARK_GRAY);
footer.SetColorFill(BaseColor.GRAY);
int al = -200;
int v = 45 - 15;
float widthoftext = 500.0f - bf2.GetWidthPoint(footerOneLine[0], 11);
footer.ShowTextAligned(al, footerOneLine[0], widthoftext, v, 0);
footer.EndText();
return footer;
}
footerTemplate() 得到这样的字符串:
footerOneLine.Add("<b>All this line is bold, and <u>this is bold and underlined</u></b>");
我还有另一种方法将字符串转换为 HTML。方法是:
private Paragraph CreateSimpleHtmlParagraph(String text) {
//Our return object
Paragraph p = new Paragraph();
//ParseToList requires a StreamReader instead of just text
using (StringReader sr = new StringReader(text)) {
//Parse and get a collection of elements
List<IElement> elements = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(sr, null);
foreach (IElement e in elements) {
//Add those elements to the paragraph
p.Add(e);
}
}
//Return the paragraph
return p;
}
问题:我没有设法在上面的代码中使用方法。 method 的数据类型是 你能帮我如何在上述代码中使用方法吗?
亲切问候。CreateSimpleHtmlParagraph
footer.ShowTextAligned(al, footerOneLine[0], widthoftext, v, 0);
footer.ShowTextAligned(int, string, float, float, float);
CreateSimpleHtmlParagraph
答:
0赞
Chris Haas
3/30/2013
#1
我不完全知道你是怎么使用的,但你正在将 iTextSharp 的文本抽象(例如 a 和 )与原始 PDF 命令(如 .抽象最终使用原始命令,但可以方便地帮助您进行换行符和当前坐标等思考,而这些通常必须手动计算。PdfTemplate
Paragraph
Chunk
ShowText()
好消息是,有一种抽象叫做,只要你愿意接受你有一个固定的矩形来绘制文本,它就可以直接与对象一起工作。ColumnText
PdfWriter.PdfContentByte
//Create a ColumnText from the current writer
var ct = new ColumnText(writer.DirectContent);
//Set the dimensions of the ColumnText
ct.SetSimpleColumn(0, 0, 500, 0 + 20);
//Create two fonts
var helv_n = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
var helv_b = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
//Create a paragraph
var p = new Paragraph();
//Add two chunks to the paragraph with different fonts
p.Add(new Chunk("Hello ", new iTextSharp.text.Font(helv_n, 12)));
p.Add(new Chunk("World", new iTextSharp.text.Font(helv_b, 12)));
//Add the paragraph to the ColumnText
ct.AddElement(p);
//Tell the ColumnText to draw itself
ct.Go();
评论
0赞
4/4/2013
非常感谢您的回复。但是我已经学习了六七个月的C#。所以我不明白你下面的代码。对不起,我的学生成绩不好。我如何将下面给定的代码集成到我的 PdfTemplate 方法中,其中放置问题。亲切问候。
评论
v
0
float
footer.ShowTextAligned(al, footerOneLine[0], widthoftext, v as float, 0 as float);
)