我正在使用iText7创建一个pdf。我想显示罗马数字。你能告诉我我应该使用哪种fonttype。我尝试使用unicode等效的罗马数字,如“\ u2162”== III但它在pdf上没有显示任何内容。
我使用的是iText7的默认字体。没有添加任何特定的字体类型。哪个是罗马数字的字体类型。?
任何指针都会有所帮助。
由于
答案 0 :(得分:1)
如果您想在PDF中使用standard 14 fonts之一,我建议使用拉丁大写字母(I V X L C D M)来表示罗马数字。
如果要使用unicode罗马数字,如Samuel Huylebroeck和mkl注释,则需要包含unicode罗马数字的字体,并将其与unicode字体编码PdfEncodings.IDENTITY_H
一起使用。< / p>
以下是使用标准字体和c#的<{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));
}
}