Automatorの「PDFページをイメージとしてレンダリング」機能に関して。

複数枚ページのPDFデータを個別のjpgに一括で変換したいため、Automatorを使用し以下のような組み合わせを作成しました。


①取得するPDFデータを選択

②「PDFページをイメージとしてレンダリング」を用い、jpg2000へと変換

③横長のはずのデータが勝手に縦長に回転したため、「イメージを回転」を用い元に戻す作業

④「Finder項目にコピー」を用い、デスクトップに保存


しかし、以上の流れの中で二点問題が発生しました。

1つ目は、前述通り②の手順で勝手にデータが回転することです。元々横長のPDFなんですが、変換すると勝手に縦長に回転してしまします。何かルールでもあるのでしょうか?

2つ目は、1つ目の問題解決のために取った③の手順です。元に回転し直したいのですが、こちらの操作はエラーが発生して回転してくれません。色々試した結果、横長のデータを縦長に回転することはできるのですが、今回のように縦長のデータを横長に回転することができません。これも何かルールがあるのでしょうか?


以上の問題を解決した上で、何か本来の目的を達成できる良い手段があればご教授願いたいです。

よろしくお願いいたします。

MacBook

投稿日 2021/01/29 08:15

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2021/01/31 21:17

ダウンロードできました。ありがとうございます。


Automator でワークフローを拵えて実行したところ、当方でも「縦長となる」と「縦長画像を横長画像に回転できない」の二つの問題が再現できました。ただし、当方の環境は Mojave 10.14.6 のためか後者についてはエラーは発生せず、回転もしない、、、という結果となります。


で、件の PDF ファイルの各ページ情報を確認したところ90度の回転情報が入ってました。つまり縦長のページを90度回転して表示されるようになっていると。


Automator の「PDFページをイメージとしてレンダリング」アクションは、この回転情報を無視してファイルを書き出すため (本来の) 縦長となる、、、ということだと思います。多分。。。


それと、画像の回転ができない問題は、アクションのバグか、元々横長しか処理できない (UI を見るとそんな印象も受けます) か、、、でしょうかね。


画像の回転は sips コマンドでもできるので、次のようにしてみてはどうでしょうか。


シェルスクリプトを実行

シェル:/bin/zsh    入力の引き渡し:引数として


for f in "$@"; do
    sips -r 90 "$f" 2>/dev/null
done




当方は Bug Sur 未導入のため動作確認はできませんが、Mojave 10.14.6 ではこれで大丈夫でした。もしダメな場合は回転情報が入らないよう PDF ファイルを作り直す良いと思います。


返信: 5
スレッドに付いたマーク ランキングトップの返信

2021/01/31 21:17 にったんぽぽ への返信

ダウンロードできました。ありがとうございます。


Automator でワークフローを拵えて実行したところ、当方でも「縦長となる」と「縦長画像を横長画像に回転できない」の二つの問題が再現できました。ただし、当方の環境は Mojave 10.14.6 のためか後者についてはエラーは発生せず、回転もしない、、、という結果となります。


で、件の PDF ファイルの各ページ情報を確認したところ90度の回転情報が入ってました。つまり縦長のページを90度回転して表示されるようになっていると。


Automator の「PDFページをイメージとしてレンダリング」アクションは、この回転情報を無視してファイルを書き出すため (本来の) 縦長となる、、、ということだと思います。多分。。。


それと、画像の回転ができない問題は、アクションのバグか、元々横長しか処理できない (UI を見るとそんな印象も受けます) か、、、でしょうかね。


画像の回転は sips コマンドでもできるので、次のようにしてみてはどうでしょうか。


シェルスクリプトを実行

シェル:/bin/zsh    入力の引き渡し:引数として


for f in "$@"; do
    sips -r 90 "$f" 2>/dev/null
done




当方は Bug Sur 未導入のため動作確認はできませんが、Mojave 10.14.6 ではこれで大丈夫でした。もしダメな場合は回転情報が入らないよう PDF ファイルを作り直す良いと思います。


2021/02/01 00:05 にったんぽぽ への返信

できましたか。良かったですね。


話が前後しますが...、回転情報は次の Automator ワークフローで確認できると思います。一応、ご参考まで。


シェルスクリプトを実行

シェル:/bin/zsh    入力の引き渡し方法:引数として


osascript -l JavaScript <<'EOF' - "$@" 2>&1
'use strict';

ObjC.import('Quartz');

function run(argv) {
    for (let f of argv.map(x => x.toString())) {
        const furl = $.NSURL.fileURLWithPath(f);
        const pdf = $.PDFDocument.alloc.initWithURL(furl);
        if (! pdf.isNil()) {
            for (let i = 0; i < pdf.pageCount; i++) {
                const page = pdf.pageAtIndex(i);
                const rotation = page.rotation;
                console.log(`page:${i}, rotation:${rotation}`);
            }
        }
    }
}
EOF



2021/01/31 19:23 Hiro__S への返信

返信ありがとうございます!

問題のPDFは自分が勉強用にスキャンした教材になります。そのうちの一つをデータ便に挙げたので確認お願いします。以下のURLから取得できます。

https://www.datadeliver.net/receiver/file_box.do?fb=66643ed8383f4b41b855ec9e85673c5f&rc=4bbd7d027c654e04aea363a25f1dea73&lang=ja


OSは「Big Sur 11.1」になります。


よろしくお願いします!

2021/01/31 23:42 Hiro__S への返信

件のPDFに関して、90°回転情報が入っているのに気づけませんでした!

勝手に回転する問題が解決できました、ありがとうございます!

「回転できない」問題の方も、UI的に横長にできない説が濃厚だと思いました。


教えていただいたシェルスクリプトでなんとかできました!

ありがとうございます!!!

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Automatorの「PDFページをイメージとしてレンダリング」機能に関して。

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。