2012-04-13 28 views
6

tener pedazo de código, como a continuación:¿Cómo justifica el texto con iTextSharp?

var workStream = new MemoryStream(); 
var doc = new Document(PageSize.LETTER, 10, 10, 42, 35); 
PdfWriter.GetInstance(doc, workStream).CloseStream = false; 
doc.Open(); 

var builder = new StringBuilder(); 
builder.Append("MY LONG HTML TEXT"); 
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(builder.ToString()), null); 

foreach (var htmlElement in parsedHtmlElements) 
     doc.Add(htmlElement); 

doc.Close(); 

byte[] byteInfo = workStream.ToArray(); 
workStream.Write(byteInfo, 0, byteInfo.Length); 
workStream.Position = 0; 
return new FileStreamResult(workStream, "application/pdf") 

y tienen un problema: cómo hacer esa pdf justificado? ¿Hay algún método o algo que haga eso rápidamente?

+0

No tengo muy claro qué estás tratando de hacer. Por favor aclare qué significa "hacer que el pdf sea ajustado". –

+0

Algo como CRTL + J en MS Word, aligh líneas a la izquierda y derecha de la página al mismo tiempo. –

Respuesta

10

Ah, entiendo, quiere decir "justificado" en lugar de "ajustado". Actualicé tu pregunta. En realidad es bastante fácil. Básicamente, depende del tipo de contenido que agregue y si ese contenido es compatible con este concepto en primer lugar. Asumiendo que usted tiene los párrafos básicas que puede establecer la propiedad Alignment en ellos antes de agregarlos en su bucle principal:

foreach (var htmlElement in parsedHtmlElements){ 
    //If the current element is a paragraph 
    if (htmlElement is Paragraph){ 
     //Set its alignment 
     ((Paragraph)htmlElement).Alignment = Element.ALIGN_JUSTIFIED; 
    } 
    doc.Add(htmlElement); 
} 

Hay dos tipos de justificación, Element.ALIGN_JUSTIFIED y Element.ALIGN_JUSTIFIED_ALL. El segundo es el mismo que el primero, excepto que también justifica la última línea de texto que puede o no querer hacer.

Cuestiones relacionadas