Skip to main content
Known Participant
January 27, 2021
Answered

注釈のフォントを一括で変更したい

  • January 27, 2021
  • 2 replies
  • 2125 views

いつも拝見させていただいています。

 

表題の通り注釈のフォントを一括で変更したいです。

フォーラム内を検索してもできませんでしたので、

自己流でJavascriptを書いてみましたがうまくいかない様です。。

プロパティを調べるとフォント名が変わっているのですが、実際の表示では何も変わっていません。

 

どなたかご存知の方、ご教示願えますと助かります!!

 

for (var p = 0; p < this.numPages; p++) {
	var annots = this.getAnnots( {nPage: p} );
	for (var i = 0; i < annots.length; i++){
		if (annots[i].type == "FreeText"){		//テキスト注釈なら
			annots[i].textFont = "MSUIGothic";	//フォントを変更
		}
	}
}

 

This topic has been closed for replies.
Correct answer Ten A
annotオブジェクト自体が中の文字色であるstrokeColorをデフォルト(指定した色ではない)で[”RGB”, 0, 0, 0]を持っててannotオブジェクト操作時にそれを適用しちゃいますね。
これ、中身の色を取れなくて新たに色を指定し直すしか手が無いように思います。

2 replies

Ten A
Community Expert
Community Expert
January 28, 2021

検証してませんが、外側のページループを外してgetAnnotsメソッドの引数を取ってしまうと全ての注釈をひろえませんか?

それと、getAnnotsの引数の記述は単純にpのみでいけたような気もします。

仁5E26Author
Known Participant
January 28, 2021

不要なんですか。。

ちょっとやってみます。

Ten A
Community Expert
Community Expert
January 27, 2021

少し検証してみましたが、プロパティがannotオブジェクトに対して適用されているにも関わらず包含するcontentには適用されていない感じですね。
ボックス自体には反映されていますから以下のように再度contentsプロパティを上書きすると設定されたフォント情報を拾うようです。なんだか変な感じですが…

var annt = this.selectedAnnots;
annt[0].textFont = font.Helv;
annt[0].contents = annt[0].contents;
仁5E26Author
Known Participant
January 28, 2021

ご回答いただきまして、誠にありがとうございます。

うまく出来ました!!

 

おっしゃる通り、確かに変な感じがありますね。。

 

あとはfor文がうまく回らないので、そちらは自分で確認してみます。