作成日: 2026/09/01 最終更新日: 2026/09/01
文書種別
不具合
状況
回避方法あり
詳細
PDFビューワ上で、複数行のフリーテキスト注釈を編集領域外のクリックで確定した場合、再表示すると1行しか表示されません。
回避方法
以下2つの回避方法があります。
- OKボタンで確定する
- 編集領域外のクリックによる確定を利用する必要がある場合、以下のコードを実装する
// フリーテキスト注釈が保存される直前に実行されるイベントです。 // 複数行のテキストが入力されている場合、 // 注釈の高さが不足してテキストが切れないように、 // 必要な高さを計算して注釈の枠サイズを自動調整します。 // 上端の位置は維持し、必要な分だけ下方向へ枠を拡張します。 viewer.onBeforeUpdateAnnotation.register(function (args) { const a = args.annotation; // フリーテキスト注釈以外、またはテキスト内容が無い場合は処理しない if (a.annotationType !== 3 /* フリーテキスト注釈 */ || typeof a.contents !== 'string') return; // 改行数から行数を取得 const lineCount = a.contents.split('\n').length; // フォントサイズから概算の行高さを算出 const lineHeight = (a.fontSize || 12) * 1.2; // おおよその行の高さ // 全行を表示するために必要な高さ const neededHeight = lineCount * lineHeight; // 注釈の矩形領域を取得 const [x1, y1, x2, y2] = a.rect; // 正規化後: y2 が上端、y1 が下端 // 必要な高さが現在の高さを超えている場合はサイズを拡張 if (neededHeight > (y2 - y1)) { // 上端を固定し、下方向へ高さを追加 a.rect = [x1, y2 - neededHeight, x2, y2]; } });