2012-04-13 3 views
6

Есть кусок кода, как показано ниже:Как оправдать текст с помощью 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") 

И еще одна проблема, как сделать что PDF оправдано? Является ли какой-либо метод или что-то, что быстро это делает?

+0

Я не совсем понимаю, что вы пытаетесь сделать. Просьба уточнить, что означает «сделать это с помощью pdf». –

+0

Что-то вроде CRTL + J в MS Word, выравнивает линии влево и вправо страницы в одно и то же время. –

ответ

10

А, я понимаю, вы имеете в виду «оправдано» вместо «скорректировано». Я обновил ваш вопрос. На самом деле это довольно легко. В основном это зависит от типа добавляемого контента и того, поддерживает ли этот контент эту концепцию в первую очередь. Если предположить, что у вас есть основные пункты вы можете установить Alignment собственности на них, прежде чем добавлять их в основной цикл:

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

Там же два типа оправдания, Element.ALIGN_JUSTIFIED и Element.ALIGN_JUSTIFIED_ALL. Второй - тот же, что и первый, за исключением того, что он также оправдывает последнюю строку текста, которую вы можете или не хотите делать.

Смежные вопросы