C# 使用PdfWriter和iTextSharp以及SetFontAndSize函数的斜体文本

C# 使用PdfWriter和iTextSharp以及SetFontAndSize函数的斜体文本,c#,pdf,itextsharp,C#,Pdf,Itextsharp,我正在使用iTextSharp创建一些pdf文件。这些文件有好几页,除最后一页外,所有这些页面上都需要用斜体书写文本 这是我使用PdfTemplate的代码,它可以工作,但我无法将字符串设置为斜体: public override void OnCloseDocument(PdfWriter writer, Document document) { base.OnCloseDocument(writer, document); template.BeginText();

我正在使用iTextSharp创建一些pdf文件。这些文件有好几页,除最后一页外,所有这些页面上都需要用斜体书写文本

这是我使用PdfTemplate的代码,它可以工作,但我无法将字符串设置为斜体:

public override void OnCloseDocument(PdfWriter writer, Document document)
{
    base.OnCloseDocument(writer, document);

    template.BeginText();
    template.SetFontAndSize(arial, 11);
    template.SetTextMatrix(0, 0);
    template.ShowText("" + (writer.PageNumber - 1));
    template.EndText();

    int index = 0;
    foreach (PdfTemplate temp in templates)
    {
        if ((++index) < (writer.PageNumber-1))
        {
            temp.BeginText();
            temp.SetFontAndSize(arial, 11);
            temp.SetTextRenderingMode(0);
            temp.SetTextMatrix(0, 0);
            temp.ShowText("- Continued -");
            temp.EndText();
        }
    }
}

您能帮我找到一种使字符串显示为斜体的方法吗?

您可以尝试使用以下代码。只需创建一个基本字体,然后创建一个字体,然后使用它

BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
Font times = new Font(bfTimes, 12, Font.ITALIC, Color.RED);

您可以尝试使用以下代码。只需创建一个基本字体,然后创建一个字体,然后使用它

BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
Font times = new Font(bfTimes, 12, Font.ITALIC, Color.RED);

粗体、斜体和普通字体都是不同的字体,它们的名称恰好相似。iText有一些快捷方式可以在内置字体之间转换,如Md.Nazrul Islam所示,但如果指定自己的字体,则需要提供各种权重和样式。对于Arial,您需要注册并使用斜体字体ariali.ttf

在示例代码中,您基本上希望执行以下操作:

var arial_italic_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ariali.ttf");
var arial_italic_base = BaseFont.CreateFont(arial_italic_path, BaseFont.IDENTITY_H, false);
temp.SetFontAndSize(arial_italic_base, 11);

粗体、斜体和普通字体都是不同的字体,它们的名称恰好相似。iText有一些快捷方式可以在内置字体之间转换,如Md.Nazrul Islam所示,但如果指定自己的字体,则需要提供各种权重和样式。对于Arial,您需要注册并使用斜体字体ariali.ttf

在示例代码中,您基本上希望执行以下操作:

var arial_italic_path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ariali.ttf");
var arial_italic_base = BaseFont.CreateFont(arial_italic_path, BaseFont.IDENTITY_H, false);
temp.SetFontAndSize(arial_italic_base, 11);

温度设定值为11;我们只能在此行中使用BaseFont,Font不是此方法的有效参数。temp.SetFontAndSizearial,11;我们只能在这一行使用BaseFont,Font不是此方法的有效参数。如果您使用的是内置的iText路径,在OPs情况下不包含ARIAL,您还可以找到_斜体或_斜体后缀。例如,BaseFont.HELVETICA_斜体和BaseFont.TIMES_斜体。如果您使用的是内置的iText路径,在OPs案例中不包含ARIAL,您还可以找到_斜体或_斜体后缀。例如,有BaseFont.HELVETICA_斜体和BaseFont.TIMES_斜体。