Asp classic abcpdf7 vb6是字母包装,而不是单词包装

Asp classic abcpdf7 vb6是字母包装,而不是单词包装,asp-classic,abcpdf,Asp Classic,Abcpdf,我正在处理一些遗留代码和系统,并尝试自动调整文本大小。 然而,尽管代码工作得非常好。这也将实际的单个单词包装为两个单词 比如说质量 变成 有人知道如何保持单词的包装,但是去掉字母的包装 谢谢 守则: truncated = 1 fontSize = 127 thewords = Request("words") ' try QUALITY do while Cint(truncated) = 1 set theDoc = Server.CreateObject("ABCpdf7

我正在处理一些遗留代码和系统,并尝试自动调整文本大小。 然而,尽管代码工作得非常好。这也将实际的单个单词包装为两个单词

比如说质量

变成

有人知道如何保持单词的包装,但是去掉字母的包装

谢谢

守则:

truncated = 1
fontSize = 127
thewords = Request("words")   ' try QUALITY    

do while Cint(truncated) = 1

set theDoc = Server.CreateObject("ABCpdf7.Doc") 
fontSize = fontSize - 2

if fontSize <= 0 Then
   exit do
end if

theDoc.Rect.Width = 273
theDoc.Rect.Height = 202
theDoc.Color.Alpha = 0
theDoc.FillRect()
theDoc.Color.Alpha = 255 
theDoc.FrameRect()
theFont1 = "C:\inetpub\wwwroot\fonts\fonts\Helvetica.ttf"
theDoc.Font = theDoc.EmbedFont(theFont1, Latin, False, False, True)
theDoc.Fontsize = fontsize
theDoc.VPos = 0.5
theDoc.color = "75 68 67 90"
oText = theDoc.AddTEXT(thewords)
truncated = theDoc.GetInfo(oText, "Truncated")
'Response.Write(truncated & "<br>")

Loop      
Data = theDoc.Rendering.GetData("testing.png")
Response.ContentType = "image/png"
Response.BinaryWrite Data
截断=1
fontSize=127
thewords=请求(“words”)'尝试质量
do while Cint(截断)=1
设置Doc=Server.CreateObject(“ABCpdf7.Doc”)
fontSize=fontSize-2

如果fontSizeabcPDF仅在以下情况下进行字母包装:

  • 包装正在进行中
  • 水平空间不足,无法容纳正在设置的一个单词
  • 在活动矩形中有另一行的垂直空间
  • 因此,这些条件相当于有足够的垂直空间,但没有足够的水平空间来容纳一些特别长的单词。因此,找到正确字体大小的一个启发式方法是首先水平测试,只使用字符串中最长的单词,在一个临时矩形中,随着字体大小的减小,该矩形会缩小到比字体大小大一个;然后,一旦您有了正确的字体大小以避免换行,请返回使用原始rect和full字符串进行测试,继续减小字体大小,直到截断完全消失


    如果您试图设置的实际上是具有不同字体或大小的HTML,那么这将变得更加复杂;但是对于单一字体和样式的纯文本,它应该是可以的

    abcpdf中要水平检查的值是多少。我必须将框保持在指定的大小(模板布局),然后用户将文本写入设置的空间。然而,在示例中,用户可以只写一个单词。然后,我会找到适合该单词所需的最佳字体大小。我已经看过了,没有看到任何水平拟合的值,或者如果水平拟合已经发生,我只能找到一个截断的检查,字母包装不是一个真正想要的效果,是一个正确的痛苦。感谢您的回复。如果您写了一个单词,并且更改了框的高度,使其无法容纳第二行,则截断(在高度降低的测试框中)表示该单词无法水平放置。