2012-04-13 2 views
6

Mają kawałek kodu jak poniżej:Jak usprawiedliwić tekst za pomocą 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") 

I mają jeden problem-how sprawiają, że pdf uzasadnione? Czy jest jakaś metoda lub coś, co szybko to robi?

+0

Nie bardzo wiem, co próbujesz zrobić. Wyjaśnij, co oznacza "spraw, aby plik PDF został skorygowany". –

+0

Coś jak CRTL + J w MS Word, linie aligh do lewej i prawej strony strony w tym samym czasie. –

Odpowiedz

10

Ah, rozumiem, masz na myśli "uzasadniony" zamiast "dostosowany". Zaktualizowałem twoje pytanie. To całkiem proste. Zasadniczo zależy to od rodzaju dodawanej treści i od tego, czy ta treść w ogóle wspiera tę koncepcję. Zakładając, że masz podstawowe akapitów można ustawić właściwość Alignment na nich przed dodaniem ich w pętli głównej:

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); 
} 

tam dwa rodzaje uzasadnieniem Element.ALIGN_JUSTIFIED i Element.ALIGN_JUSTIFIED_ALL. Druga jest taka sama jak pierwsza, oprócz tego, że usprawiedliwia również ostatnią linię tekstu, którą możesz lub nie chcesz zrobić.