2012-04-13 89 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。第二个与第一个相同,只是它也证明了你可能或不想要做的最后一行文本。