我有以下问题。 我正在 CrystalReports 中重新创建A3大小的标签,并且有一个文本字段必须为Arial 115,粗体,通常宽度为0.5。
一个人可以使用<p style="font-family: 'Arial'; font-weight:bold; font-size: 115px;transform:scaleX(0.5);">SOME LONGER TEXT (scaled down)</p>
<p style="font-family: 'Arial'; font-weight:bold; font-size: 115px;">SOME LONGER TEXT (no scaling)</p>
在HTML中完成此操作。
transform
尽管CrystalReports对HTML有所了解,但它不支持productFlavors {
free{
}
pro{
applicationIdSuffix ".pro"
}
}
。
所以我问是否有办法。 该报告是.net程序的一部分,可能对此有一些API函数吗?
我考虑过要生成和安装所需的缩小字体(共有6种),但我不知道怎么做。
更新我已经在下面发布了我的解决方案。
答案 0 :(得分:0)
我建议使用HTML作为中介,因为它有点复杂,所以我尚未对其进行测试,因此可能需要一些调试才能开始工作。
首先将一个cssClass
值添加到Crystal文档中的文本对象(在属性中)。像shrinkobject
之类的东西。
接下来将水晶报表导出为html文本。
然后使用样式标签注入html文本,例如:
html = html.Replace("<HTML>", "<HTML><style>p.shrinkObject {transform:scaleX(0.5);}</style>");
然后该html应该应用CSS值,并可以呈现给打印机。
答案 1 :(得分:0)
您可以使用UFL(用户功能库)来计算适合给定边界区域内的文本的最大字体大小。创建您自己的列表或查看第三方UFL的here的列表。
这是我的UFL中的description of GetFontSizeToFitText()函数。
答案 2 :(得分:0)
我最终要做的事情:
ArialShrunk-050-BoldMT
,家族名称:Arial Shrunk 050
,人类名称:Arial Shrunk 050 Bold
;当被问及更改唯一ID时,请按“更改”; Glyph Origin
;对Scale
执行的第一个操作,对50
进行 X 的操作(在100
保留 Y );
转换所有图层,也转换转换图层,舍入为整数;
也变换宽度,也变换变换字距类,变换简单定位特征和间距对;
TrueType
,取消选中Validate Before Saving
(单击保存);按生成,然后在“查找可能太大”中按确定-警告; 现在有一种新的系统范围字体Arial Shrunk 050
供我使用,尤其是在CrystalReports中。
这不是很理想,但是由于我不需要生成太多缩放比例变化,因此可以使用。