我有跟踪问题。我正在CrystalReports,中重新创建一个A3大小的标签,其中有一个文本字段,必须是Arial 115,粗体,一般宽度为0.5。
我们可以使用transform:scaleX(0.5)在HTML中完成它。
<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>
虽然CrystalReports对transform有一定的理解,但它不支持transform的。
所以我在问有没有办法。这个报告是.NET程序的一部分,可能有一些API-函数吗?
我想要生成和安装我需要的缩小字体(会有6个字体),但我不知道怎么做。
更新我已经在下面发布了我的解决方案。
发布于 2018-10-12 14:47:52
我最后做的是:
ArialShrunk-050-BoldMT,姓氏:Arial Shrunk 050,人类的名字:Arial Shrunk 050 Bold;当被问到更改唯一的id时,请按"Change";Glyph Origin;第一个动作为Scale,X到50 (将Y留在100);转换所有层,也将引导层转换为Int未检查;转换宽度也转换为角化类,转换简单的定位特征& kern对选中;
TrueType被选中,取消选中Validate Before Saving (保存点击);按Generate,在“查找可能太大”-Warning中按OK;现在有一个新的系统范围的字体Arial Shrunk 050供我在任何地方使用,特别是在CrystalReports中。
这不是很理想,但由于没有太多的缩放变化,我需要生成,它工作。
发布于 2018-10-12 10:02:54
我建议使用HTML作为中介,我还没有测试它,因为它有点复杂,所以可能需要一些调试才能开始工作。
首先,向水晶文档中的文本对象(属性中)添加一个cssClass值。有点像shrinkobject。
接下来,将水晶报告导出为html文本。
然后将html文本注入样式标记,如下所示:
html = html.Replace("<HTML>", "<HTML><style>p.shrinkObject {transform:scaleX(0.5);}</style>");然后,这个html应该应用CSS值,并可以呈现到打印机上。
发布于 2018-10-12 10:36:56
您可以使用UFL (用户函数库)计算符合给定边界区域内文本的最大字体大小。创建您自己的或看到第三方不明飞行物的这里列表。
这是我的UFL中的一个GetFontSizeToFitText()描述函数。
https://stackoverflow.com/questions/52744120
复制相似问题