如何减少 IText 7 段落之间的间距?
How to reducing spacing between paragraphs IText 7?
如何使用 IText 7
缩小 "Section 1"
和 "Alert"
之间的行间距?
这些是存储在数据库table中的值
<h3 style=color:#0000ff;><strong>Section 1</strong></h3>
<h4><strong>- Alert</strong></h4>
我试过这些链接但没有成功,因为没有更改 "Section 1"
和 "Alert"
之间的行距
- https://kb.itextpdf.com/home/it7kb/faq/how-to-change-the-line-spacing-of-text
- How to adjust spacing between paragraphs in iText7
下面是我的代码
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
contents = new Paragraph(dt.Rows[i]["contents"].ToString())
.SetTextAlignment(TextAlignment.JUSTIFIED)
.SetFontSize(12)
.SetMultipliedLeading(0.0f);
List<IElement> lst = HtmlConverter.ConvertToElements(dt.Rows[i]["contents"].ToString()).ToList();
for (int j = 0; j < lst.Count; j++)
{
IBlockElement element = (IBlockElement)lst[j];
if (dt.Rows[i]["contents"].ToString().StartsWith("<h3 style=color:#0000ff;><strong>Section"))
{
contents.SetFontSize(12)
.SetBold()
.SetFontColor(ColorConstants.BLUE)
.SetMultipliedLeading(0.0f);
}
else if (dt.Rows[i]["contents"].ToString().StartsWith("<h4><strong>- "))
{
contents.SetFontSize(10)
.SetBold()
.SetFontColor(ColorConstants.BLACK)
.SetMultipliedLeading(0.0f);
}
else
{
contents.SetFontSize(10)
.SetFontColor(ColorConstants.BLACK)
.SetMultipliedLeading(0.0f);
}
document.Add(element);
}
}
dest = filename.ToString();
}
您正在从 HTML 字符串创建 Paragraph
个对象(称为 contents
)并对其应用属性,但并未将这些对象添加到文档中。您还通过让 HtmlConverter
处理 HTML 字符串来创建元素列表。这些元素被添加到文档中。
因此,预计在 contents
上设置的 none 属性在 PDF 文档中可见。
您可以简单地依靠 HtmlConverter
来处理 CSS 属性。
String[] htmls = {
"<h3 style=\"color:#0000ff;\"><strong>Section 1</strong></h3>",
"<h4><strong>- Alert</strong></h4>"
};
PdfWriter writer = new PdfWriter("SO66694693.pdf");
PdfDocument pdfDoc = new PdfDocument(writer);
Document document = new Document(pdfDoc);
for (int i = 0; i < htmls.Length; i++)
{
IList<IElement> lst = HtmlConverter.ConvertToElements(htmls[i]);
for (int j = 0; j < lst.Count; j++)
{
IBlockElement element = (IBlockElement)lst[j];
document.Add(element);
}
}
document.Close();
输出:
调整第一个元素的下边距和第二个元素的上边距时:
"<h3 style=\"color:#0000ff;margin-bottom: 0px;\"><strong>Section 1</strong></h3>",
"<h4 style=\"margin-top: 0px;\"><strong>- Alert</strong></h4>"
输出:
如果您更喜欢使用 SetMargin()
、SetMarginBottom()
等而不是 CSS 属性来更改属性,请确保您是在实际对象上执行此操作添加到文档。
如何使用 IText 7
缩小 "Section 1"
和 "Alert"
之间的行间距?
这些是存储在数据库table中的值
<h3 style=color:#0000ff;><strong>Section 1</strong></h3>
<h4><strong>- Alert</strong></h4>
我试过这些链接但没有成功,因为没有更改 "Section 1"
和 "Alert"
- https://kb.itextpdf.com/home/it7kb/faq/how-to-change-the-line-spacing-of-text
- How to adjust spacing between paragraphs in iText7
下面是我的代码
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
contents = new Paragraph(dt.Rows[i]["contents"].ToString())
.SetTextAlignment(TextAlignment.JUSTIFIED)
.SetFontSize(12)
.SetMultipliedLeading(0.0f);
List<IElement> lst = HtmlConverter.ConvertToElements(dt.Rows[i]["contents"].ToString()).ToList();
for (int j = 0; j < lst.Count; j++)
{
IBlockElement element = (IBlockElement)lst[j];
if (dt.Rows[i]["contents"].ToString().StartsWith("<h3 style=color:#0000ff;><strong>Section"))
{
contents.SetFontSize(12)
.SetBold()
.SetFontColor(ColorConstants.BLUE)
.SetMultipliedLeading(0.0f);
}
else if (dt.Rows[i]["contents"].ToString().StartsWith("<h4><strong>- "))
{
contents.SetFontSize(10)
.SetBold()
.SetFontColor(ColorConstants.BLACK)
.SetMultipliedLeading(0.0f);
}
else
{
contents.SetFontSize(10)
.SetFontColor(ColorConstants.BLACK)
.SetMultipliedLeading(0.0f);
}
document.Add(element);
}
}
dest = filename.ToString();
}
您正在从 HTML 字符串创建 Paragraph
个对象(称为 contents
)并对其应用属性,但并未将这些对象添加到文档中。您还通过让 HtmlConverter
处理 HTML 字符串来创建元素列表。这些元素被添加到文档中。
因此,预计在 contents
上设置的 none 属性在 PDF 文档中可见。
您可以简单地依靠 HtmlConverter
来处理 CSS 属性。
String[] htmls = {
"<h3 style=\"color:#0000ff;\"><strong>Section 1</strong></h3>",
"<h4><strong>- Alert</strong></h4>"
};
PdfWriter writer = new PdfWriter("SO66694693.pdf");
PdfDocument pdfDoc = new PdfDocument(writer);
Document document = new Document(pdfDoc);
for (int i = 0; i < htmls.Length; i++)
{
IList<IElement> lst = HtmlConverter.ConvertToElements(htmls[i]);
for (int j = 0; j < lst.Count; j++)
{
IBlockElement element = (IBlockElement)lst[j];
document.Add(element);
}
}
document.Close();
输出:
调整第一个元素的下边距和第二个元素的上边距时:
"<h3 style=\"color:#0000ff;margin-bottom: 0px;\"><strong>Section 1</strong></h3>",
"<h4 style=\"margin-top: 0px;\"><strong>- Alert</strong></h4>"
输出:
如果您更喜欢使用 SetMargin()
、SetMarginBottom()
等而不是 CSS 属性来更改属性,请确保您是在实际对象上执行此操作添加到文档。