2016-12-22 4 views
0

Adob​​eでJavascriptを使用している初心者です。私は、ファイル名をキャッチしてドキュメントのタイトルとして追加するスクリプトを書いていますが、2行の長いファイル名に分割されないという問題があります。長いテキストファイル名はページ境界線から外れてしまいます。例えば、ファイル名の場合Adob​​e Javascriptで2行に分割した長いファイル名文字列

は、「これは私がページ内の長いテキストとフィット感を分割するためにスクリプトを書くためにどのように2行に分割する必要がテキストである」 ある

これは単なるサンプルです。私は何を編集する必要がありますか?それは可能ですか?

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 
}) 
+1

あなたの質問を投稿する前に、**タグを読んでください。 – DavidPostill

+1

トピック以外の質問をしています。 [On-Topic](https://superuser.com/help/on-topic)、[どのように良い質問をしますか](https://superuser.com/help/how-to-ask)をお読みください。 [どのような種類の質問を避けるべきですか](https://superuser.com/help/dont-ask) – DavidPostill

+0

いいえ、そうではありません。プログラミングの質問は話題にはなりません。 ** "**プログラミングの質問はトピックから外れています;代わりにStack Overflowに問い合わせてください** **" – DavidPostill

答えて

0

だから、Acrobatのドキュメントでこれを行うための簡単な方法を探しては、追加し、100%の最大でページに収まるように透かしを拡張するべきbPercentage: -1プロパティを使用することです。明らかに、テキストが長ければ長いほど、型のサイズは小さくなりますが、必要なときに拡大縮小するだけです。

ここで大きな問題は「どの程度大きすぎますか?」です。ほとんどのフォントは固定幅ではないためです。そのフォントのタイプのサイズを調べる関数がない場合は、一時イメージを設定し、タイプを設定してからイメージの寸法を測定し、テキストをどのくらい分割するかを決定する必要があります。

英語の最悪の場合はおそらくWの無限の文字列になるでしょう。したがって、フォントサイズとある程度の文字制限をハードコードしたい場合、Wsの数を数えることで合理的な最大文字数を得ることができますそれは境界から外れるのにかかる。

この番号を取得したら、文字列を分割できます。文字列を分割する

一つの方法は、部分文字列を使用することです。その後、

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); 
} 

そして、私はこれをテストしていないと私のjavascriptのは少し萎縮していますが、考え方はにあるcText: cDisplayText,

cText: trFileName,を置き換えます文字列の長さをテストし、ハイフンと改行を挿入します。

これは(明らかに)複数の改行が必要な場合を考慮していません。

+0

動作しません。しかし、それが動作するなら、私は最大の文字列の代わりに最大の単語の文字列を好むだろう。これは私が立ち往生している場所です。 – spriteup

+0

ファイル名が "geological_survey_Llanfairpwllgwyngyllgogerychwyrndrobwllllysysogogogoch.pdf"の場合、単語数は機能しません。何かを検討する – Yorik

+0

ファイル名を事前に作成してあり、特定の記号や文字はありません。スペース文字と単語だけがあります。だから、単語の数のオプションは私のための最善の解決策です。 – spriteup

関連する問題