2012-04-13 57 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調整」的含義。 – 2012-04-13 19:33:47

+0

MS Word中的CRTL + J類似於同一時間在頁面的左側和右側。 – 2012-04-13 20:26:53

回答

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_JUSTIFIEDElement.ALIGN_JUSTIFIED_ALL。第二個與第一個相同,只是它也證明了你可能或不想要做的最後一行文本。