Как я могу быстро разделить PDF-файл на отдельные страницы (т. е. из командной строки терминала)?

У меня есть PDF-файл длиной 6 страниц, который я хочу разделить на 1.pdf, 2.pdf, 3.pdf, etc...

предварительный просмотр не работает для этого удивительно (если я что-то не хватает).

Я хотел бы быть в состоянии сделать эту простую задачу из командной строки, но на данный момент я возьму все, что получает работу (без загрузки эскизного программного обеспечения)

FYI http://users.skynet.be/tools/ не работает как рекламируется.

7
задан user391339
14.01.2023 5:40 Количество просмотров материала 3533
Распечатать страницу

5 ответов

открываем PDF в окне предварительного просмотра, а затем в меню Вид выберите эскизы. Ctrl выделите страницы, которые вы хотите перетащить на рабочий стол.

17
отвечен eleethesontai 2023-01-15 13:28

это может быть достигнуто с помощью pdfseparate. Вы можете установить poppler с homebrew,brew install poppler. Это также установит pdfseparate. Чтобы разделить PDF document.pdf в одном страницы 1.pdf,2.pdf, etc. использование:

pdfseparate document.pdf %d.pdf
30
отвечен ttq 2023-01-15 15:45

Если вы заинтересованы в этом из командной строки, вы можете посмотреть на сценарий python Splitpdf Бенджамина Хана сделать работу. Например:

splitPDF.py in.pdf 3 5

разделит файл in.pdf на 3 файла, разделенные на страницы 3 и 5.

4
отвечен Jean-Philippe Pellet 2023-01-15 18:02

Если вы хотите извлечь диапазон страниц, вы можете использовать следующий скрипт, который вы вызываете, как это (предполагается, что вы сохраните его в файл pdfextract.py где-то на пути вашей системы, например, /usr / local/ bin, и назначьте ему разрешение на выполнение с помощью chmod 744 pdfextract.py):

pdfextract.py --файл-в /путь/до/файла большого размера-из/в PDF --/путь/к/новому/в PDF --пуск --остановка

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import argparse
import os
import subprocess as sp


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--file-in', required=True, type=str, dest='file_in')
    parser.add_argument('--file-out', required=True, type=str, dest='file_out')
    parser.add_argument('--start', required=True, type=int, dest='start', default=-1)
    parser.add_argument('--stop', required=True, type=int, dest='stop', default=-1)

    args = parser.parse_args()
    assert os.path.isfile(args.file_in)
    assert not os.path.isfile(args.file_out)

    # remove temporary files
    for el in os.listdir('/tmp'):
        if os.path.isfile(os.path.join('/tmp', el)) and el[:12] == 'pdfseparate-':
            os.remove(os.path.join('/tmp', el))

    sp.check_call('pdfseparate -f {:d} -l {:d} {:s} /tmp/pdfseparate-%d.pdf'.format(args.start, args.stop, args.file_in), shell=True)

    cmd_unite = 'pdfunite '
    for i in range(args.start, args.stop + 1):
        cmd_unite += '/tmp/pdfseparate-{:d}.pdf '.format(i)
    cmd_unite += args.file_out
    sp.check_call(cmd_unite, shell=True)

    # remove temporary files
    for el in os.listdir('/tmp'):
        if os.path.isfile(os.path.join('/tmp', el)) and el[:12] == 'pdfseparate-':
            os.remove(os.path.join('/tmp', el))


if __name__ == "__main__":
    main()
1
отвечен Konstantin 2023-01-15 20:19

другой вариант, увидеть это ответ. Это использует утилиты инструменты командной строки.

convert x.pdf -quality 100 -density 300x300 x-%04d.pdf

однако, вы должны быть осторожны с качеством.

0
отвечен pheon 2023-01-15 22:36

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх