まあ、半角・全角という表現がアレなのはおいておいてください。
最近、郵送にクリックポストという手段を使うのですが、ヤマトのメール便に似た感じのサービスで、A4 サイズ、3cm までの厚みのものが安価に送れます。
ウェブで送り先などを入力して、ラベルを作成するんですが、ある程度の数になると、それが結構面倒臭いんですよね。
需要があるのか、さっぱりわかりませんが、重松は住所録ソフトは筆まめを使っているんですが、その筆まめの住所データーをいちいち Windows と Mac とを切り替えながらコピペするのも面倒くさいので、自動化しました。
その時、住所は半角があってはいけないので、変換する必要があるんですが、以前は、Script Managaer を使って変換していたんですけど、もう OSAX がどっかに行ってしまっているし、JavaScript でやることにしました。
以下のページを参考にしました。
- JavaScript – 全角英数記号を半角にする関数 http://www.m-bsys.com/code/toHalfWidth
tell application "Finder"
set myText to the clipboard
end tell
tell application "Safari"
set myClickPostDocument to 0
set myNumOfDocuments to count every document
repeat with myDocumentNum from 1 to myNumOfDocuments
set theDocumentTitle to do JavaScript "document.title" in document myDocumentNum
if theDocumentTitle contains "新規発送" then
set myClickPostDocument to myDocumentNum
exit repeat
end if
end repeat
if myClickPostDocument is 0 then
say "click post document was not found"
return
end if
tell application "Finder" to set myClip to the clipboard
set buf to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
set myData to every text item of myClip
set AppleScript's text item delimiters to buf
set myName to item 4 of myData
set myZip to item 67 of myData
set myAddr to item 68 of myData
if 0 < (length of (item 69 of myData)) then set myAddr to myAddr & item 69 of myData
tell document myClickPostDocument
do JavaScript "
document.querySelector('div.edit_panel input[name$=id39]').value='おふだ';
document.querySelector('div.edit_panel input[name$=no_missive]').checked=true;
document.querySelector('div.edit_panel input[name$=checked_pack_size]').checked=true;
myZip = '" & myZip & "';
document.querySelector('div.edit_panel input[name$=zip1]').value = myZip.substr(0,3);
document.querySelector('div.edit_panel input[name$=zip2]').value = myZip.substr(4,4);
myAddr = '" & myAddr & "'.replace(/[!-~]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
});
myAddr = myAddr.replace(/^愛媛県/,'');
document.querySelector('div.edit_panel textarea[name$=receiver_address]').value = myAddr;
myName = '" & myName & "';
document.querySelector('div.edit_panel input[name$=receiver_name]').value = myName;
"
end tell
end tell