2012-04-13 14 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

MS WordのCRTL + Jのようなもので、ページの左右に並んでいます。 –

答えて

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

正当化の2種類、Element.ALIGN_JUSTIFIEDElement.ALIGN_JUSTIFIED_ALLがあります。 2番目は最初のテキストと同じですが、テキストの最後の行を正当化することができます。

関連する問題