【问题标题】:Split Long Filename string in two Lines with Adobe Javascript使用 Adob​​e Javascript 将长文件名字符串分成两行
【发布时间】:2016-12-22 21:47:16
【问题描述】:

我是在 Adob​​e 中使用 Javascript 的新手。我编写了捕获文件名并将其作为标题添加到文档中的脚本,但问题是它没有分成两行长文件名。如此长的文本文件名超出了页面边框。

例如文件名是 “这是一个文本,我需要分成两行如何编写脚本以拆分长文本并适合页面”

这只是一个示例。我需要编辑什么?有可能吗?

var trFileName = this.documentFileName.replace(/.*\/|\.pdf$/ig,""); //remove .pdf extension
var pageAmount = this.numPages; //define how many pages are there

this.addWatermarkFromText({
cText: trFileName,
nStart: 0,
nEnd: pageAmount,
nFontSize: 18,
aColor: color.blue,
cFont: "Helvetica-Bold",
nTextAlign: app.constants.align.center,
nHorizAlign: app.constants.align.center,
nVertAlign: app.constants.align.top,
//nHorizValue: -25, 
nVertValue: -87.87
})

【问题讨论】:

  • 请在发布您的问题之前阅读标签
  • 不,不是。编程问题是题外话。请阅读 javascript 标记,因为您已被告知“编程问题不在此处;请改为在 Stack Overflow 上提问。
  • 评论不是顶讨论这个的地方。如果您不同意,您可以在 Meta Stack Overflow 上提问。
  • 我已经投票支持迁移。您还可以将您的问题标记为“需要主持人干预”并要求模组移动它(具体说明您希望它移动到哪里)。

标签: javascript filenames adobe


【解决方案1】:

因此,查看 Acrobat 文档的快速方法是添加和使用 bPercentage: -1 属性,该属性应该缩放水印以适应最大 100% 的页面。显然,文本越长,字体越小,但它应该只在需要时缩放。

这里最大的问题是“多大才算太大?”由于大多数字体不是固定宽度的。因此,如果您没有一些功能来检查该字体的字体大小,则需要设置一个临时图像,设置类型,然后测量图像的尺寸,然后决定破坏文本的程度。

虽然英语最坏的情况可能是W 的无限字符串,所以如果你想硬编码字体大小和一些合理的字符限制,你可以通过计算多少来获得合理的最大字符数是否需要越界。

一旦你有了那个数字,你就可以分割字符串了。

拆分字符串的一种方法是使用子字符串:

    var cDisplayText = trFilename;

var nMaxChars = 10;
var cAdobeNewline = '\r';
var cLineBreakChar = '-';

if (cDisplayText.length > nMaxChars && cDisplayText.length > 0) {
  cDisplayText = cDisplayText.substring(0, nMaxChars) 
  + cLineBreakChar 
  + cAdobeNewline 
  +  cDisplayText.substring(nMaxChars);
}

然后将cText: trFileName,替换为cText: cDisplayText,

我没有对此进行测试,并且我的 javascript 已经萎缩了一点,但想法是测试字符串长度并插入连字符和换行符。

这(显然)不考虑需要超过 1 个换行符的情况。

【讨论】:

  • 它不起作用。但如果它可以工作,我会更喜欢 max word string 而不是 max chars。这就是我卡住的地方。
  • 如果您的文件名是“geological_survey_Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.pdf”,字数统计将不起作用。需要考虑的事情
  • 我已经预先形成了文件名,并且没有任何特定的符号或字符。只有空格字符和单词。所以字数统计选项对我来说是最好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
相关资源
最近更新 更多