//このJavaScriptは、PDFファイルの中の1つの英単語を検索してハイライトします。 // Programmed by Shiro Hinotsu M.D. supported by Copilot and ChatGPT. // //検索文字列キーボードから入力 var userInput = app.response({ cQuestion: "文字を入力してください:", cTitle: "ユーザー入力", cDefault: "", bPassword: false }); if (userInput !== null) { // キャンセルされた場合は null になる console.println("入力された文字列: " + userInput); } else { console.println("入力がキャンセルされました。"); } var searchTerm = userInput; //入力された文字列を検索 //色選択用変数設定 var selectedColor = color.green; //色の選択肢入力 while (true) { var userChoice = app.response({ cQuestion: "選択肢を入力してください:\n1: 黄色\n2: 赤\n3: 青\n4: 緑\n5: 水色", cTitle: "選択メニュー", cDefault: "", bPassword: false }); if (userChoice === null) { console.println("入力がキャンセルされました。"); break; // キャンセル時はループを抜ける } switch (userChoice) { case "1": selectedColor = color.yellow; break; case "2": selectedColor = color.red; break; case "3": selectedColor = color.blue; break; case "4": selectedColor = color.green; break; case "5": selectedColor = color.cyan; break; default: app.alert("無効な入力です。1〜5の数字を入力してください。"); continue; // 無効な入力ならループを続行 } break; // 正しい入力がされたらループを抜ける } console.println("選択された番号:" + userChoice); console.println("スクリプト開始"); for (var i = 0; i < this.numPages; i++) { console.println("ページ " + i + " を処理中"); for (var j = 0; j < this.getPageNumWords(i); j++) { try { var word = this.getPageNthWord(i, j, false); word = word.trim(); //空白削除 if (word.toLowerCase() == searchTerm.toLowerCase()) { // 小文字に変換して比較 console.println("一致する単語が見つかりました: " + word); var quads = this.getPageNthWordQuads(i, j); if (quads) { this.addAnnot({ type: "Highlight", page: i, quads: quads, author: "Researcher", contents: "Keyword", fillColor: selectedColor, strokeColor: selectedColor, }); console.println("ハイライトが追加されました"); } } } catch (e) { console.println("エラー: " + e.message + " at page " + i + ", word index " + j); } } } console.println("スクリプト終了");