2012-02-04 25 views
9

Sto provando a impostare il carattere personalizzato su Paragrafo, ma non riesco a farlo funzionare. Ho provato a impostare .Font =, ma funziona solo in termini di dimensioni, ma ignora il carattere. Potresti per favore assistere?ItextSharp (Itext) - imposta il carattere personalizzato per il paragrafo

Paragraph T = new Paragraph(newTempLine); 
iTextSharp.text.Font contentFont = iTextSharp.text.FontFactory.GetFont("Webdings", 12, iTextSharp.text.Font.NORMAL); 
T.Font = contentFont; 
myDocument.Add(T); 

risposta

12

Set in the constructor:

Font contentFont = FontFactory.GetFont(…); 
Paragraph para = new Paragraph(newTempLine, contentFont); 
+1

Ti capita di avere qualsiasi informazione sul motivo per cui questo funziona e 'T.Font = ...' non lo fa? – Nenotlep

+2

@Nenotlep Non sono un'autorità per gli interni di iText e dovrei attirare l'attenzione sulla fonte o qualcosa del genere, ma suppongo che l'impostazione della proprietà del carattere cambi solo il carattere del testo che aggiungi al paragrafo in seguito. (Questo è basato sul fatto che 'Paragraph' ha un metodo' add (Element) ', quindi sembra essere un elemento composito stesso.) – millimoose

+1

@Nenotlep Ricorda che il PDF è ** non ** un markup dichiarativo, è un derivato di PostScript, un linguaggio di disegno imperativo ottimizzato per il rendering di documenti molto grandi senza doverli tenere completamente in memoria. Per consentire l'output in streaming, iText inoltre non crea una rappresentazione del documento in memoria - credo che quando si aggiunge un elemento a un documento, di solito viene scritto immediatamente. Quindi sembra che tu stia manipolando una rappresentazione logica di una struttura del documento, ma lo streaming può trapelare attraverso questa astrazione. – millimoose

Problemi correlati