有一段代码如下:
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 :(得分: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
。第二个与第一个相同,只是它也证明了你可能想要或不想做的最后一行文本。