C# 如何设置PDF段落';使用iTextSharp的字体是什么?
为了遵循示例,我添加了以下代码来创建PDF文档的标题:C# 如何设置PDF段落';使用iTextSharp的字体是什么?,c#,pdf,fonts,itextsharp,C#,Pdf,Fonts,Itextsharp,为了遵循示例,我添加了以下代码来创建PDF文档的标题: using (var doc = new Document(PageSize.A4, 50, 50, 25, 25)) { using (var writer = PdfWriter.GetInstance(doc, ms)) { doc.Open(); var docTitle = new Paragraph("UCSC Direct - Direct Payment Form");
using (var doc = new Document(PageSize.A4, 50, 50, 25, 25))
{
using (var writer = PdfWriter.GetInstance(doc, ms))
{
doc.Open();
var docTitle = new Paragraph("UCSC Direct - Direct Payment Form");
var titleFont = FontFactory.GetFont("Lucida Sans", 18, Font.Bold);
doc.Add(docTitle);
但是,创建titleFont的尝试无法编译(“与'iTextSharp.text.FontFactory.GetFont(string,float,iTextSharp.text.BaseColor)'匹配的最佳重载方法具有一些无效参数”),因此我让IntelliSense通过一次添加一个参数来“帮助”我。因为第一个参数是字体名,一个字符串,我加了“SegoeUI”;下一个参数是字体大小,一个浮点数,所以我添加了18.0;最后,它调用了字体颜色,一种基色类型,因此我添加了BaseColor.Black,结果是:
var titleFont = FontFactory.GetFont("Segoe UI", 18.0, BaseColor.BLACK);
…但这也无法编译,因为“与'iTextSharp.text.FontFactory.GetFont(string,string,bool)'匹配的最佳重载方法具有一些无效参数”
所以,当我复制这个示例,并使用字符串、int和字体样式时,它说不,它需要字符串、浮点和基色。当我添加这些参数时,它改变了“想法”,说它真正想要的是字符串、字符串和bool
此外,该示例还显示了如何将段落添加到文档中,如下所示:
doc.Add(docTitle, titleFont);
…但这也不会飞,因为“方法'Add'的无重载包含2个参数”
我能做些什么来安抚它?不管我是跳吉格舞还是唱挽歌,它都不想跟着我玩
更新
好,这个编译:
var docTitle = new Paragraph("UCSC Direct - Direct Payment Form");
var titleFont = FontFactory.GetFont("Courier", 18, BaseColor.BLACK);
docTitle.Font = titleFont;
doc.Add(docTitle);
GetFont
因此,第一步,选择最适合你的
以下行不起作用的原因:
FontFactory.GetFont("Segoe UI", 18.0, BaseColor.BLACK);
如果没有后缀,18.0
被解释为一个double,并且由于没有重载,因此.Net是string来将其转换为字符串
FontFactory.GetFont("Segoe UI", 18.0f, BaseColor.BLACK)
对于段落本身,您可以在构造函数中设置字体,也可以只设置段落的font
属性,两者都可以
var p1 = new Paragraph("Hello", myFont);
var p2 = new Paragraph();
p2.Font = myFont;
p2.Add("Hello")
您需要在段落的构造函数中设置字体,而不是在文档中设置字体。至于GetFont方法,我认为您只是缺少了color参数。瞧,用黑体字和黑体字,而不是一个或另一个。相关的,也许是被愚弄的感谢,克里斯;顺便说一句,我看到你住在拉克罗斯;我在Brookfield和Oconomowoc住了15年。这个答案用词不太恰当。18.0永远不会在C#中自动转换为字符串。在C#中,数字被隐式转换为字符串的唯一时间是使用字符串
+
运算符,这里没有使用该运算符。所发生的是重载解析选择它认为最接近的重载并失败,因为类型不匹配。
var p1 = new Paragraph("Hello", myFont);
var p2 = new Paragraph();
p2.Font = myFont;
p2.Add("Hello")