Itext7:显示罗马数字

时间:2018-02-14 21:46:45

标签: fonts itext7 roman-numerals

我正在使用iText7创建一个pdf。我想显示罗马数字。你能告诉我我应该使用哪种fonttype。我尝试使用unicode等效的罗马数字,如“\ u2162”== III但它在pdf上没有显示任何内容。

我使用的是iText7的默认字体。没有添加任何特定的字体类型。哪个是罗马数字的字体类型。?

任何指针都会有所帮助。

由于

1 个答案:

答案 0 :(得分:1)

如果您想在PDF中使用standard 14 fonts之一,我建议使用拉丁大写字母(I V X L C D M)来表示罗马数字。

如果要使用unicode罗马数字,如Samuel Huylebroeckmkl注释,则需要包含unicode罗马数字的字体,并将其与unicode字体编码PdfEncodings.IDENTITY_H一起使用。< / p>

以下是使用标准字体和的<{3}}示例:

const string Latin = "The movie Saving Private Ryan was released in MCMXCVIII.";
const string Unicode = "The movie Saving Private Ryan was released in \u216F\u216D\u216F\u2169\u216D\u2167.";
const string Dest = @"C:\publish\RomanNumerals.pdf";
const string Font = @"C:\fonts\mplus-1p-regular.ttf";

using (var fileStream = new FileStream(Dest, FileMode.Create))
{
    var pdfDoc = new PdfDocument(new PdfWriter(fileStream));
    using (var doc = new Document(pdfDoc))
    {
        PdfFont f1 = PdfFontFactory.CreateFont(StandardFonts.HELVETICA);
        PdfFont f2 = PdfFontFactory.CreateFont(Font, PdfEncodings.IDENTITY_H);

        doc.Add(new Paragraph(Latin).SetFont(f1));
        doc.Add(new Paragraph(Unicode).SetFont(f2));
    }
}