プレビューの見開き表示の際に、右とじの本を正しく表示する方法がありますか?

Adobeを使っては可能なのですが、プレビューをデフォルトソフトとして使いたいので、可能な方法があれば教えて欲しい。

MacBook Air (M2, 2022)

投稿日 2025/02/18 09:24

返信
返信: 1
並べ替え順: 

2025/02/18 16:50 keiji2510047 への返信

PDF 書類は右開き/左開きの情報を持つことができるようですが Preview では無視されるようです。なので、設定とかでは無理だと思います。Adobe Reader を使うのが簡単で良さそうですよ。


どうしても Preview でということなら、JavaScript でページを並べ替えて新規に PDF 書類を書き出す手があります。(無理矢理感がありますが...)


ページの並べ替えはこんな感じ (最初のページ (0) は表紙と考えて固定)

前: 0 1 2 3 4

後: 0 2 1 4 3


作り方

  1. スクリプトエディタを起動して
  2. ウインドウ左上の言語選択で JavaScript を選択し
  3. 下記コードをコピペし
  4. スクリプト形式で保存


使い方

  1. 作成したスクリプトファイルをスクリプトエディタで開き、
  2. 実行 => ダイアログに従い PDF を選択して OK => xxx_converted.pdf が書き出される


※ オリジナルは捨てずにとっておいてください。


コード

'use strict';

ObjC.import('Cocoa');
ObjC.import('PDFKit');

var App = Application.currentApplication(); App.includeStandardAdditions = true;

function R2L(ary) {
    function func(a, size) {
        const splitted = a.reduce((p, _, i) => i % size ? p : [...p, a.slice(i, i + size).reverse()], []);
        return splitted.flat();
    }
    const new_ary = ary.length > 1 ? [0].concat(func(ary.slice(1), 2)) : [0];
    return new_ary;
}

function run() {
    const args = App.chooseFile({
        withPrompt: 'PDF ファイルを選択してください (複数選択可)',
        ofType: 'com.adobe.pdf',
        multipleSelectionsAllowed: true,
    });

    for (const f of args) {
        const fpath = f.toString();
        const pdf = $.PDFDocument.alloc.init;

        const furl = $.NSURL.fileURLWithPath(fpath);
        const doc = $.PDFDocument.alloc.initWithURL(furl);
        const ii = R2L([...Array(Number(doc.pageCount))].map((_, i) => i));

        for (let n = 0; n < doc.pageCount; n++) {
            pdf.insertPageAtIndex(doc.pageAtIndex(ii[n]), n);
        }

        const new_fpath = $(fpath).stringByDeletingPathExtension.stringByAppendingString('_converted.pdf').js;

        pdf.writeToFile(new_fpath);
    }

    App.displayDialog('処理が完了しました', {
        buttons: ['OK'], defaultButton: 'OK', withIcon: 1
    });
}


# 投稿内容を若干変更しました


返信

プレビューの見開き表示の際に、右とじの本を正しく表示する方法がありますか?

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