В сегодняшней заметке я покажу, как исходный PDF документ разбить на страницы каждая, из которых, будет представлена PDF страницей. Нам понадобится консольная утилита, не раз применяемая в моих заметках – это pdftk.
И так у нас есть система:
keiz@vkeiz:~$ lsb_release -a && uname -a
Description: Ubuntu 10.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. Что нам собственно и требовалось. На этом всё, удачи!!!