Skip to content

Instantly share code, notes, and snippets.

@zarigani
Last active November 7, 2022 00:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save zarigani/400795 to your computer and use it in GitHub Desktop.
Save zarigani/400795 to your computer and use it in GitHub Desktop.
TextEdit margin setting
set margin to input_margin()
tell application "TextEdit"
activate
make new document
set text of front document to my rtf_setting(margin)
set tmp_path to (path to temporary items as text) & "rtf_margin_setting.scpt.rtf"
set doc_name to "余白設定 " & my in_text(margin) & ".rtf"
close front document saving yes saving in tmp_path
open file (tmp_path)
set name of front document to doc_name
end tell
on input_margin()
set margin to false
repeat until margin
set my text item delimiters to {",", " "}
"余白をmmで設定してください。
" & " 例:5 ... 上 5 下 5 左5 右5
" & " 例:20,5 ... 上20 下20 左5 右5
" & " 例:20,10, 5,0 ... 上20 下10 左5 右0
" & return & "先頭に+を付けると、ヘッダー・フッターを印刷する余白を確保します。(例:+5、+20,10,5,0)"
display dialog result default answer "" buttons {"キャンセル", "OK"} default button 2 with icon note
set margin to result's text returned's text items
set my text item delimiters to ""
if margin's number = 1 then
twip(margin's item 1, margin's item 1, margin's item 1, margin's item 1) & {margin}
else if margin's number = 2 then
twip(margin's item 1, margin's item 1, margin's item 2, margin's item 2) & {margin}
else if margin's number = 4 then
twip(margin's item 1, margin's item 2, margin's item 3, margin's item 4) & {margin}
else
beep
set margin to false
end if
end repeat
end input_margin
on rtf_setting(margin)
set rtf1 to "{\\rtf1\\mac\\ansicpg10001\\cocoartf824\\cocoasubrtf470" & return
set end_rtf1 to "}"
set paperw to {"\\paperw", 11905} --210mm--A4
set paperh to {"\\paperh", 16838} --297mm--A4
set margl to {"\\margl", margin's item 3}
set margr to {"\\margr", margin's item 4}
set margt to {"\\margt", margin's item 1}
set margb to {"\\margb", margin's item 2}
set vieww to {"\\vieww", 999999}
set viewh to {"\\viewh", 999999}
set viewkind to {"\\viewkind", 1}
set viewscale to {"\\viewscale", 100}
set page_setting to paperw & paperh & margl & margr & margt & margb & vieww & viewh & viewkind & viewscale & return as text
rtf1 & page_setting & end_rtf1
end rtf_setting
on in_text(margin)
my join(margin's item 5, "_")
end in_text
on twip(t, b, l, r)
set twip_margin to {twip_form(t), twip_form(b), twip_form(l), twip_form(r)}
if t's item 1 is "+" and twip_margin's item 1 < 576 then set twip_margin's item 1 to 576
if b's item 1 is "+" and twip_margin's item 2 < 288 then set twip_margin's item 2 to 288
twip_margin
end twip
on twip_form(mm)
round (mm as number) * 1440 / 25.4 rounding down
end twip_form
on join(sourceList, delimiter)
set oldDelimiters to my text item delimiters
set AppleScript's text item delimiters to {delimiter}
set theText to sourceList as text
set my text item delimiters to oldDelimiters
return theText
end join
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment