Разбираем PDF документ на отдельные PDF страницы.

Posted by

В сегодняшней заметке я покажу, как исходный документ разбить на страницы каждая, из которых, будет представлена PDF страницей.  Нам понадобится консольная утилита, не раз применяемая в моих заметках – это .

И так у нас есть система:

keiz@vkeiz:~$ lsb_release -a && uname -a

Description:      .10

Release:           10.10

Codename:      maverick

Linux vkeiz 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux

 

Для наших целей я создал в домашней каталоге папку и назвал её “pdf_on_output_pdf”, перейдем в неё:

keiz@vkeiz:~$ cd pdf_on_output_pdf/

В нём лежит PDF’ый документ (а именно купленный журнал Linux Format, выпуск – 154.pdf).

 

Теперь установим в нашу систему пакет pdftk из репозитариев Ubuntu 10.10:

“в моем случае устанавливает такое большое число пакетов, у вас же может быть либо больше, либо меньше”

keiz@vkeiz:~/pdf_on_output_pdf$ sudo apt-get install pdftk

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following packages were automatically installed and are no longer required:

esound-common libesd0 libaudiofile0 esound-clients libaudio2

Use ‘apt-get autoremove’ to remove them.

The following extra packages will be installed:

ca-certificates-java default-jre default-jre-headless gcj-4.4-base

gcj-4.4-jre-lib icedtea-6-jre-cacao java-common libaccess-bridge-java

libaccess-bridge-java-jni libbcmail-java libbcmail-java-gcj libbcprov-java

libgcj-bc libgcj-common libgcj10 libgif4 libgnuinet-java libgnujaf-java

libgnumail-java libitext-java libitext-java-gcj openjdk-6-jre

openjdk-6-jre-headless openjdk-6-jre-lib ttf-dejavu-extra tzdata tzdata-java

Suggested packages:

equivs java-virtual-machine libbcmail-java-doc libbcprov-java-gcj

libbcprov-java-doc libgcj10-dbg libgcj10-awt libgnumail-java-doc

icedtea6-plugin sun-java6-fonts ttf-sazanami-gothic ttf-kochi-gothic

ttf-sazanami-mincho ttf-kochi-mincho ttf-telugu-fonts ttf-oriya-fonts

ttf-kannada-fonts ttf-bengali-fonts

The following NEW packages will be installed:

ca-certificates-java default-jre default-jre-headless gcj-4.4-base

gcj-4.4-jre-lib icedtea-6-jre-cacao java-common libaccess-bridge-java

libaccess-bridge-java-jni libbcmail-java libbcmail-java-gcj libbcprov-java

libgcj-bc libgcj-common libgcj10 libgif4 libgnuinet-java libgnujaf-java

libgnumail-java libitext-java libitext-java-gcj openjdk-6-jre

openjdk-6-jre-headless openjdk-6-jre-lib pdftk ttf-dejavu-extra tzdata-java

The following packages will be upgraded:

tzdata

1 upgraded, 27 newly installed, 0 to remove and 375 not upgraded.

Need to get 66.4MB of archives.

After this operation, 166MB of additional disk space will be used.

Do you want to continue [Y/n]? y – соглашаемся.

 

Теперь отобразим информацию по нашему PDF документу:

keiz@vkeiz:~/pdf_on_output_pdf$ pdfinfo 154.pdf

Creator:        Adobe InDesign CS3 (5.0)

Producer:       Adobe PDF Library 8.0

CreationDate:   Mon Jan 30 23:51:23 2012дата подготовки документа

ModDate:        Fri Mar  2 13:08:57 2012

Tagged:         yes

Pages:          116Количество страниц в документе

Encrypted:      noДокумент не зашифрован

Page size:      595.276 x 841.89 pts (A4)Формат страниц

File size:      29301782 bytesРазмер документа в байтах

Optimized:      no

PDF version:    1.6

Либо вот через такую строчку:

keiz@vkeiz:~/pdf_on_output_pdf$ pdftk 154.pdf dump_data output | grep Pages | grep -o ‘[0-9]*’

116 – Количество страниц в PDF документе.

 

Для нас здесь наиболее ценную информацию играет значение —  “Pages”, где указано количество страниц в документе. С подготовительными действиями разобрались и инструментами: документ и утилита.

 

Вытащим из PDFдокумента, определённые страницы (к примеру, 5’ую) и сохраним их в PDF:

keiz@vkeiz:~/pdf_on_output_pdf$ pdftk 154.pdf cat 5 output 5.pdf

 

,если нужно указать диапазон извлекаемых страниц (c 5’ую по 10’ую):

keiz@vkeiz:~/pdf_on_output_pdf$ pdftk 154.pdf cat 5-10 output 5.pdf

 

,если нужно извлечь все страницы каждая в отдельный pdf документ:

keiz@vkeiz:~/pdf_on_output_pdf$ pdftk 154.pdf burst

Результат извлечения из PDF документа страниц каждая из которых представлена PDF документом.

 

 

 

 

 

В итоге мы получили файл содержащий метаинформацию по исходному PDF документу и каждую страницу представленную  в формате PDF. Что нам собственно и требовалось. На этом всё, удачи!!!

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

20 − одиннадцать =