我正在使用iText 5表创建标签(如在Avery标签中)。标签元素的定位需要一些非常严格的公差,以便适应标签上的所有内容。我的问题是我在标签上有各种区域作为PdfPCells。我需要将文本放入这些区域,并浪费0个空间。但我似乎总是在单元格的顶部有额外的空间。使用.setVerticalAlignment(Element.ALIGN_TOP)可以很好地说明这一点;这不会将文本带到我的单元格顶部。
我显示图片,但显然我不允许。
如何摆脱这个空间?
routes.MapRoute(
"Default",
"{brandName}",
new { controller = "Home", action = "YourBrandAction", brandName = "" }
); // inside RegisterRoutes method
//Your Controller
public class HomeController : Controller
{
[HttpGet]
public ActionResult YourBrandAction(String brandName)
{
//your controller logic...
return View(yourBrandModel);
}
}
答案 0 :(得分:4)
您非常接近解决方案。您正在设置的所有属性都可以,现在尝试添加:
companyCell.setUseAscender(true);
companyCell.setUseDescender(true);
这些方法有何作用?它们考虑了存储在正在使用的字体中的指标。你谈到顶部填充,但你会注意到“下降”也会对底部填充产生很好的影响。
顶部的“填充”实际上不是填充。这是“领先”。您使用的是默认字体,即Helvetica 12pt。默认前导是字体大小的1.5倍。那是18pt。您正在文本模式中工作,这意味着您可以在单元格级别定义前导(而不是复合模式,您可以在其中定义前导级别要素)。例如:您可以从顶部“填充”中删除4pt,如下所示:
companyCell.setLeading(14);
重要提示:这也会减少不同行之间的间距。如果我不是一个选项,你可能想切换到复合模式。