チップが届きました

今日は午前中は書類仕事をしようと思っていたのですが。。。
普通に作業してしまいました。

乾燥試験用の薪ですが、少しづつできています。

ただ、メッシュパレットが足りません。
以前メッシュに入れて納品していた分を取りに行けばいいんでしょうけど、空になったメッシュパレットだけを取りに行ったのでは、手間と燃料代がとても出ません。
足りない分をどうするか、考えないといけません。
とりあえず、買わなくても、乾燥機 2 セット分以上、持ってはいるんですけど。
はてさて困った。

それと、チップですが、いけそうなので 10t 深ダンプで運んでもらいました。
30m3 くらいあるかなと。
これでどれくらいの時間連続自動運転できるのか気になります。
それで大体乾燥機のランニングコストがはっきりするかなと思います。

これだけの量を chip bin に入れるのを、人力でやっていたら大変なので、山にボブキャットを取りに行ったんですが、ダンプできる高さは 2.1m で chip bin は 2.5m くらいの高さがあるので、何らかの踏み台を用意してやる必要がありそうです。

将来的には、ハイマストのヒンジ付きのリフトにスコップを作って、それで投入するのがスマートかなとは思うのですが。

まあ、そんこんなで、合間を縫って薪の配達を 2 件こなして、本日終了です。

それで、書類ですが、まあ、暗くてもできるので家に帰ってからやったんですが。。。
人力でゴリゴリやろうと思っていたんですが、性分的に無理でした。

property maxTries : 30

try
    do shell script "rm ~/path/to/orders/*.pdf"
end try

set myFiles to do shell script "ls ~/path/to/orders/*.html"
set myFiles to every paragraph of myFiles

tell application "Safari"
    activate
    
    close windows
    open location "about:blank"
    delay 1
    
    repeat with myFile in myFiles
        
        set tmp to AppleScript's text item delimiters
        set AppleScript's text item delimiters to ".html"
        set theList to every text item of myFile
        set AppleScript's text item delimiters to ".pdf"
        set dstFile to theList as string
        set AppleScript's text item delimiters to tmp
        
        set URL of document 1 to "file://" & myFile
        delay 1
        repeat maxTries times
            delay 1
            if ((URL of document 1 as text) does not start with "about:") then
                set state to do JavaScript "document.readyState" in document 1
                if (state is "complete") then
                    
                    tell application "System Events"
                        tell process "Safari"
                            repeat until exists sheet 1 of window 1
                                click menu item "Export as PDF…" of menu "File" of menu bar 1
                                delay 1
                            end repeat
                            
                            keystroke "g" using {command down, shift down}
                            delay 1
                            keystroke dstFile
                            delay 1
                            key code 36
                            delay 1
                            key code 36
                        end tell
                    end tell
                    
                    exit repeat
                    
                end if
            end if
        end repeat
    end repeat
end tell

この前、美しくないけど、とりあえず、System Events を使ってやるか、って言ってた通り、ゴリゴリ、無理無理 Safari で PDF に変換しました。

たったこれだけ書くのに 3 時間もかかってます。
耄碌。

参考にしたのはこちら。

それで、まあ、動かないよ、という相談なので、当然動きません。
一部動かないし、安定しない。
それが 3 時間かかった理由なんですが。

完全忘備録ですけど。。。

  1. script stops at getting file path

まず、保存先を設定する方法として、元々は set value of text field 1 to POSIX path of SaveFolder としてあったんですが、text field 1 がないと言われます。
なので、パスを入力する方法に変更しました。
keystroke でフルパスだけをタイプすると、その後 return を key code でタイプしても、ファイル名がうまく反映されません。
なぜか keystroke “g” using {command down, shift down} をかますと上手くいきました。

  1. I have delay of 0.02 for keystroke “R” using {command down, shift down}, but this may not be sufficient with multiple pages. How to improve this?

これについては、ファイルの読み込みが完了することを確認することで改善しました。

if ((URL of document 1 as text) does not start with "about:") then
    set state to do JavaScript "document.readyState" in document 1
    if (state is "complete") then
        -- do your stuff here
    end if
end if

これで、まず invoice を一括ダウンロード(HTML)して、それを HTML から PDF に変換、変換された複数の PDF に連番を振りつつ 1 つに纏める、という不毛な作業が完全に自動でできるようになりました。
HTML の部分に CSS を追加して、必要のない項目(例えば、サイトのロゴとか、配達住所)を非表示にしているので、かなり見やすく、またコンパクトにまとまったのも良かったです。