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")

そして、1つの問題があります-そのpdfを正当化するにはどうすればよいですか? それをすばやく行う方法や何かはありますか?

4

1 に答える 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正当化にはとの 2 種類がありElement.ALIGN_JUSTIFIED_ALLます。2 つ目は最初のものと同じですが、テキストの最後の行を正当化することもできますが、これはやりたくない場合もあります。

于 2012-04-14T05:44:13.927 に答える