c# - 如何使用 iTextSharp 对齐文本?

标签 c# 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 合理化?有什么方法或东西可以快速做到这一点吗?

最佳答案

啊,我明白了,你的意思是“justified”而不是“adjusted”。我更新了你的问题。这实际上很容易。基本上,这取决于您要添加的内容类型以及该内容是否首先支持此概念。假设您有基本段落,您可以在将它们添加到主循环之前设置它们的 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。第二个与第一个相同,只是它还调整了您可能想要或可能不想做的最后一行文本。

关于c# - 如何使用 iTextSharp 对齐文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145557/

相关文章:

javascript - 使用 JavaScript 设置 gridview 内文本框的格式

.net - 在 iTextSharp 中将富文本添加到 AcroField

c# - 使用 iTextSharp 从 PDF 中删除第一页

c# - 扩展 System.Windows.Forms.Button 并更改 c# 中的默认文本

asp.net - 写入 pdf 的 Html 格式不正确

asp.net - iTextSharp单位

c# PDF 中的高分辨率图像

c# - 需要从 MVC 中的 View 访问主布局控件

c# - Visual Studio 的奇怪崩溃 2010

c# - OpenQA.Selenium.WebDriverException : unknown error: Chrome failed to start: exited abnormally while executing tests through Selenium start on linux