我正在使用itextsharp dll来创建pdf。
我想改变我的字体颜色。
我在Google找到了解决方案。
Document document = new Document(PageSize.A4, 88f, 88f, 10f, 10f);
Font NormalFont = FontFactory.GetFont("Arial", 12, Font.NORMAL, Color.BLACK);
但我尝试使用我的源代码。它显示错误当前上下文中不存在名称'Color'。颜色类不喜欢。
如何解决此错误。
谢谢。
我的代码如下。
using iTextSharp.text;
using iTextSharp.text.pdf;
private void sPDF(DataRow row)
{
Document document = new Document(PageSize.A4, 88f, 88f, 10f, 10f);
Font NormalFont = FontFactory.GetFont("Arial", 12, Font.NORMAL, Color.BLACK);
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
Phrase phrase = null;
PdfPCell cell = null;
PdfPTable table = null;
Color color = null;
document.Open();
//Separater Line
color = new Color(System.Drawing.ColorTranslator.FromHtml("#A9A9A9"));
DrawLine(writer, 25f, document.Top - 79f, document.PageSize.Width - 25f, document.Top - 79f, color);
DrawLine(writer, 25f, document.Top - 80f, document.PageSize.Width - 25f, document.Top - 80f, color);
document.Add(table);
document.Close();
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
}
}
private static void DrawLine(PdfWriter writer, float x1, float y1, float x2, float y2, Color color)
{
PdfContentByte contentByte = writer.DirectContent;
contentByte.SetColorStroke(color);
contentByte.MoveTo(x1, y1);
contentByte.LineTo(x2, y2);
contentByte.Stroke();
}
答案 0 :(得分:1)
正如我之前多次解释的那样,我们不再谈论iTextSharp了。几年前,该名称已更改为iText for .NET。查看您的代码,我发现您使用的是旧版iText(可能是版本5)。今天,我们的版本为7.请参阅tutorial和download page。
您的问题有两个答案:
请升级至iText 7,并使用iText 7 Color类:http://itextsupport.com/apidocs/iText7/latest/com/itextpdf/kernel/colors/package-summary.html
如果您坚持使用旧版iText(请注意:不再支持这些版本),请将Color
替换为BaseColor
:http://itextsupport.com/apidocs/iText5/5.5.13/com/itextpdf/text/BaseColor.html
我不知道您在哪里找到有关使用Color
的文档,但该信息必须非常陈旧,因为我们在2009年将Color
更改为BaseColor
。< / p>
为避免出现其他问题,请使用最新版本,并始终参考official web site。