Ответ 1
BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);
....
Подробнее здесь.
когда я хочу использовать шрифт iText, я делаю следующее:
protected final static Font FONT_SIZE_11_BOLD = new Font(Font.HELVETICA, 11f, Font.BOLD);
а затем я могу использовать его, если захочу, следующим образом:
monthSize11 = new Chunk(month, FONT_SIZE_11_BOLD);
Я хочу использовать Arial вместо HELVETICA, но Arial напрямую не доступен. Я имею в виду, я не могу сделать
new Font(Font.ARIAL, 11f, Font.BOLD);
потому что Arial не определен в классе Font, но файл Arial.ttf находится в моей системе под C:\WINDOWS\Fonts. Вопрос в том, как я могу привязать файл Arial.ttf к iText и как его использовать.
Многие thnaks заранее.
EDIT: Я бы хотел использовать собственные шрифты. Я имею в виду, у меня есть файл под названием "myCompany.ttf", где были определены собственные шрифты и в некоторых местах я должен использовать. Проблема заключается не только в Arial.
BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);
....
Подробнее здесь.
Загрузите изнутри JAR с помощью косой черты; в противном случае используйте абсолютный путь вашего шрифта (C:\...\fonts\Sansation_Regular.ttf
). Например:
Font font = FontFactory.getFont("/fonts/Sansation_Regular.ttf",
BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 0.8f, Font.NORMAL, BaseColor.BLACK);
BaseFont baseFont = font.getBaseFont();
Используйте BaseFont.createFont для создания нового объекта Font.
Вы можете передать любой шрифт Type1 или TTF. Вам просто нужно будет обеспечить, чтобы ваш файл шрифта распределялся вместе. обращаться API BaseFont
Создание пользовательских шрифтов с использованием itext просто
Я написал код для того же ниже
Определенно поможет кому-то
public class CustomFontStyle {
public static void main(String[] args) {
// creation of the document with a certain size and certain margins
// may want to use PageSize.LETTER instead
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
// creation of the different writers
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("CustomFontsStyle.pdf"));
final String NEWLINE = "\n";
document.open();
Phrase phrase = new Phrase();
BaseFont baseFont3 = BaseFont.createFont("Xenotron.ttf", BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
Font font2 = new Font(baseFont3, 12);
document.add(new Paragraph("Custom Xenotron Font: ", font2));
phrase.add(NEWLINE);
document.add(phrase);
document.close();
}
catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}