Code: Select all
using (MemoryStream ms = new MemoryStream())
{
var pdfWriter = new iText.Kernel.Pdf.PdfWriter(ms);
iText.Kernel.Pdf.PdfDocument pdf = new PdfDocument(pdfWriter);
iText.Layout.Document doc = new Document(pdf);
var com_prh = new iText.Layout.Element.Paragraph()
.SetTextAlignment(iText.Layout.Properties.TextAlignment.CENTER)
.SetHorizontalAlignment(iText.Layout.Properties.HorizontalAlignment.CENTER)
.SetFontFamily("Rubik")
.SetFontSize(18)
.SetBold()
.SetFontColor(ColorConstants.BLACK);
doc.Add(com_prh);
doc.Close();
}
FontProvider und FontSet sind leer. Der Name der Schriftfamilie (siehe ElementPropertyContainer#setFontFamily) kann ohne initialisierten FontProvider (siehe RootElement#setFontProvider) nicht aufgelöst werden.
Soweit ich weiß, kann dieser Fehler behoben werden Ich muss die FontFamily „Rubik“ festlegen, aber die Methode FontProvider.AddFont() gibt „false“ zurück.
Code: Select all
FontProvider font = new FontProvider();
var defaultFontFamily = font.GetDefaultFontFamily(); // Helvetica
var addPdfFonts = font.AddStandardPdfFonts();
var addFont = font.AddFont("Rubik"); // false
Code: Select all
public virtual int AddStandardPdfFonts()
{
AddFont("Courier");
AddFont("Courier-Bold");
AddFont("Courier-BoldOblique");
AddFont("Courier-Oblique");
AddFont("Helvetica");
AddFont("Helvetica-Bold");
AddFont("Helvetica-BoldOblique");
AddFont("Helvetica-Oblique");
AddFont("Symbol");
AddFont("Times-Roman");
AddFont("Times-Bold");
AddFont("Times-BoldItalic");
AddFont("Times-Italic");
AddFont("ZapfDingbats");
return 14;
}