Вопрос по c# – Как оправдать текст с помощью iTextSharp?

6

Есть кусок кода, как показано ниже:

 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 оправданным? Есть какой-нибудь метод или что-то, что быстро делает это?

Что-то вроде CRTL + J в MS Word, выравнивание по левому и правому краю страницы одновременно. Kamil Będkowski
Я не совсем понимаю, что вы пытаетесь сделать. Пожалуйста, уточните, что & quot; сделать этот pdf корректированный & quot; средства. Chris Haas

Ваш Ответ

1   ответ
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, Второй такой же, как первый, за исключением того, что он также оправдывает последнюю строку текста, которую вы можете или не хотите делать.

Похожие вопросы