2012-07-06 7 views
11

Jest wiele tajemnic dla mnie, co dzieje się z czcionką i basefont. Zwłaszcza jeśli chodzi o konstruktora. Witryna iText daje tę linię jako przykładowy kod dla nowych czcionekiText, co się dzieje z Fontem, BaseFontem i createFont()?

BaseFont unicode = BaseFont.createFont("c:/windows/fonts/arialuni.ttf", 
         BaseFont.IDENTITY_H, 
         BaseFont.EMBEDDED); 

mogę dostać to wezwanie do pracy:

BaseFont bf = BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1257, 
        BaseFont.EMBEDDED); 

Ale jeśli mogę wymienić BaseFont.CP1257 z powiedzieć BaseFont.HELVETICA to robi” t działa i otrzymuję stronę z napisem "nie udało się wczytać dokumentu PDF".

Próbowałem przeglądać plik klasy i nie mogę się domyślić, jaki jest ten drugi parametr (zakładam, że jest to coś w rodzaju kopii zapasowej na wypadek, gdyby pierwsza czcionka nie działała, tak jak w HTML) i nie mogę zrozumieć, dlaczego niektóre czcionki działają, a inne nie.

Odpowiedz

7

załadować go od wewnątrz słoika korzystać wiodącą ukośnik inaczej, wystarczy użyć bezwzględną ścieżkę swojej czcionki ("C: [...] \ Fonts \ Sansation_Regular.ttf"). Na przykład:

Font font = FontFactory.getFont("/fonts/Sansation_Regular.ttf", 
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 0.8f, Font.NORMAL, BaseColor.BLACK); 
BaseFont baseFont = font.getBaseFont(); 
+0

Pomocne, choć nie odpowiada na pytanie. –

+0

Co robi tu '0,8f'? Jest to pierwsza z prawdopodobnie 30 referencji, które widziałem (w tym oficjalna dokumentacja), która faktycznie pokazuje, jak się odwołać i użyć czcionki w itext. Dziękuję Ci. –

0

To właśnie dla mnie zadziałało. Stary post, ale nie mogłem znaleźć prostej odpowiedzi.

//Here you setup the font that you want. I put it under the root/Content/fonts folder in my project 
Font font = FontFactory.GetFont("~/Content/fonts/ARIALN.ttf", BaseFont.CP1252,false, 9); 

//Here I create the paragraph then assign the font to it at the end 
var addressAttn = new Paragraph("Attn: Manager, Billing Services", font); 
Powiązane problemy