Форум программистов, компьютерный форум, киберфорум
Софт для Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74

Как работает скрипт нарезания страниц pdf-файла?

25.09.2022, 18:08. Показов 1292. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Есть скрипт(нарезание страниц pdf-файла),хотелось бы узнать как он работает. Взял отюда: https://habr.com/ru/post/130308/.Как пропустить pdf-файл чепез этот скрпит? Имя pdf-файла нужно где-то написать как входные данные? И как настраиваить на нарезку не на две , а на три части,например. И куда будет сохранять выходной файл?Я не знаю как это сделать,помогите,пожалуйста.
Сам скрипт:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash
# скрипт для преобразования PDF и DJVU файлов в формат для эклектронной книги 800x600
 
# использование: скрипт документ -in_[pdf|djvu] -out_[pdf|djvu] -img_format_[png|jpg]
in_format=$2
out_format=$3
img_format=$4
 
if [ "$img_format" = "-img_format_png" ];
then
  img_format=png
else
  img_format=jpg
fi
 
mask="*.*"
 
if [ "$in_format" = "-in_djvu" ];
then
   # если это DJVU то приобразовываем его в многостраничный TIFF
   ddjvu -format=tiff $1 1.tiff
   # режем получившийся TIFF в по страницам
   tiffsplit 1.tiff
   rm 1.tiff
   mask="x*.tif"
else
   # режем PDF по страницам
   pdftk $1 burst
   mask="pg_*.pdf"
fi
 
pages=""
 
# обработать все страницы
for p in `ls -1 $mask`; do
 
   # конвертируем страничку в JPG и преобразуем в оттенки серого
   if [ "$in_format" = "-in_djvu" ];
   then
      convert -colorspace gray -normalize -contrast $p $p.${img_format}
   else
      convert -density 300 -colorspace gray -normalize -contrast $p $p.${img_format}
   fi
 
   rm $p
 
   p=${p}.${img_format}
 
   # обрезаем все поля автоматически
   convert -trim +repage $p $p
   
   # вырезаем верхнюю часть картинки
   convert -gravity North -crop 100%x35% +repage $p 1_$p
   # вырезаем вторую часть картинки
   convert -gravity Center -crop 100%x35% +repage $p 2_$p
   # вырезаем третью часть картинки
   convert -gravity South -crop 100%x35% +repage $p 3_$p
 
   rm $p
   
   # меняем разрешение на 800х600
   convert -scale 800x600! 1_$p 1_$p
   convert -scale 800x600! 2_$p 2_$p
   convert -scale 800x600! 3_$p 3_$p
   
   # разворачиваем на 90 градусов
   convert -rotate 90 1_$p 1_$p
   convert -rotate 90 2_$p 2_$p
   convert -rotate 90 3_$p 3_$p
   
   # улучшаем качество картинки
   convert -sharpen 0.01 1_$p 1_$p
   convert -sharpen 0.01 2_$p 2_$p
   convert -sharpen 0.01 3_$p 3_$p
   
   # если выходной файл DJVU
   if [ "$out_format" = "-out_djvu" ];
   then
      # конвертируем странички в djvu-формат
      c44 -dpi 150 1_$p 1_$p.djvu
      c44 -dpi 150 2_$p 2_$p.djvu
      c44 -dpi 150 3_$p 3_$p.djvu
      
      # список страничек
      pages=${pages}' 1_'${p}'.djvu 2_'${p}'.djvu 3_'${p}'.djvu'
    else
      convert -define pdf:use-trimbox=true -density 200 1_$p 1_$p.pdf
      convert -define pdf:use-trimbox=true -density 200 2_$p 2_$p.pdf
      convert -define pdf:use-trimbox=true -density 200 3_$p 3_$p.pdf
      
      # список страничек
      pages=${pages}' 1_'${p}'.pdf 2_'${p}'.pdf 3_'${p}'.pdf'
    fi
 
    rm 1_$p 2_$p 3_$p
done
 
# создаем выходной файл книжки
if [ "$out_format" = "-out_djvu" ];
then
  # собрать в единый DjVu
  djvm -c out.djvu $pages
else
  # собрать в единый PDF
  pdftk $pages cat output out.pdf
fi
 
rm $pages
Миниатюры
Как работает скрипт нарезания страниц pdf-файла?  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.09.2022, 18:08
Ответы с готовыми решениями:

Скрипт сохранения страниц файла pdf - как картинок jpg
Здравствуйте. Подскажите код VBScript , который бы сохранял страницы файла pdf - как картинки jpg - в ту же папку ?

Импорт файла в pdf без пустых страниц
Здравствуйте. Импортирую файл word в формат pdf кодом: wrdParentDoc.ExportAsFixedFormat OutputFileName:=newfilepath, _ ...

Как посчитать количество страниц в PDF-файлах
Мне необходимо посчитать количество страниц в PDF-файлах (в данной дирректории и во всех вложениях) и количество этих PDF-файлов....

19
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,414
25.09.2022, 20:58
# использование: скрипт документ -in_[pdf|djvu] -out_[pdf|djvu] -img_format_[png|jpg]

# если это DJVU то приобразовываем его в многостраничный TIFF

# режем получившийся TIFF в по страницам

# режем PDF по страницам

Читайте, что написано.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
25.09.2022, 21:53  [ТС]
И что ?прочитал,
что дальше?
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,232
26.09.2022, 09:49
Лучший ответ Сообщение было отмечено Solutio как решение

Решение

Solutio, и мы надеялись, что все вопросы у тебя отпадут. Потому что в первой строке комментария выше ответ на твой первый вопрос.
в общем, так:
скрипт документ -in_[pdf|djvu] -out_[pdf|djvu] -img_format_[png|jpg]
где "скрипт" - название файла скрипта
"документ" - имя документа, который преобразовываем
"-in_[pdf|djvu]" - подразумевается, что ты выберешь формат входящего файла: pdf или djvu в виде -in_pdf, например.

остальные параметры аналогично.
нарезка, на сколько я вижу, осуществляется постранично. о каких частях вы говорите, я не совсем понимаю.
новый файл будет формироваться в текущей директории.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
26.09.2022, 16:13  [ТС]
Alli_Lupin, а как интересно сделать так чтобы один файлна выходе был, а не целая куча пдф-файлов?В начале нарезало(появилось много пдф-файлов),а потом все исчезло,удалилось само,интересно..
Миниатюры
Как работает скрипт нарезания страниц pdf-файла?  
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,232
26.09.2022, 16:26
Solutio, а вы поставили требуемые модули?
Code
1
Работу скрипта проверял на Ubuntu 10.04, для работы должны быть установлены ImageMagic, libtiff, pdftk и DjvuLibre.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
26.09.2022, 16:33  [ТС]
Alli_Lupin, да , поставил
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,232
26.09.2022, 16:34
Solutio, а ещё мне кажется, что ваш pdf защищён от изменения.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
26.09.2022, 16:35  [ТС]
Alli_Lupin, а как это узнать,проверить?
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,232
26.09.2022, 16:38
Solutio, попробовать внести изменения в PDF через какой-нибудь редактор.
0
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,414
26.09.2022, 18:07
Цитата Сообщение от Solutio Посмотреть сообщение
Alli_Lupin, а как интересно сделать так чтобы один файлна выходе был, а не целая куча пдф-файлов
эээ... чо?? Скрипт чего делает-то? Ну прочтите же комментарии в нём!
Он сначала pdf или djvu разбивает на кучу файлов в каждом - одна страница. Обрабатывает эту страницу (каждую!) - серой делает, поля удаляет, ещё там чего-то, ужимает до 800*600, потом всё собирает обратно в один файл (новый) и прибирает за собой мусор. Вы и видите процесс работы, на выходе причём один файл и получаете.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
26.09.2022, 18:37  [ТС]
_sg2, прочитал я уже,понял...0)) проблема ща в другом,нифига не работает у меня этот скрпит почему -то0
0
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,414
26.09.2022, 20:42
Вот жеж.
Приведите полностью команду, как используете скрипт и вывод потом. У меня минут за 10 600 страниц экзамена 200 от редхат изуродвало нормально
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
27.09.2022, 09:27  [ТС]
_sg2, как-то так..
Миниатюры
Как работает скрипт нарезания страниц pdf-файла?   Как работает скрипт нарезания страниц pdf-файла?   Как работает скрипт нарезания страниц pdf-файла?  

0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
27.09.2022, 09:32  [ТС]
_sg2, выше сказали,что нужно проверить пдф-файл на защищенность. я это сделал,вроде изменения вносятся..правда ,изменяя одну странцу(ввожу текст,например) сохраняется только одна странца ,а все остальные страницы исчезают
0
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,414
27.09.2022, 10:45
Не знаток пдф, но вот тоже строчка про ... блин, нельзя было нормально скопировать, не скринами?? not allowed by security policy pdf наверно намекает что файл защищён и его так просто не почикаешь. Соответственно проинициализировав первоначально переменные, но не сделав расщепление исходника, дальше одни ошибки сыплются.
Я считаю что именно с Вашим файлом скрипт ничего поделать не сможет. Рад бы ошибиться, но увы.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
27.09.2022, 11:45  [ТС]
_sg2, с этой защитой (те никак её не снимешь)ничего неподелать я так полагаю?
0
5037 / 1064 / 149
Регистрация: 29.01.2013
Сообщений: 6,232
27.09.2022, 11:49
Solutio, да просто распечатайте защищённый PDF в незащищённый. В системе обычно присутствует pdf-принтер.
0
1135 / 391 / 86
Регистрация: 30.08.2017
Сообщений: 2,414
27.09.2022, 13:28
Цитата Сообщение от Solutio Посмотреть сообщение
_sg2, с этой защитой (те никак её не снимешь)ничего неподелать я так полагаю?
Это в ветку с типографами и прочими товарищами из полиграфии, которые знают как препарировать pdf.
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 74
27.09.2022, 15:24  [ТС]
_sg2,понятно,ладно, всем спасибо !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2022, 15:24
Помогаю со студенческими работами здесь

Как получить количество страниц в документе PDF
kak iz biblioteka pdf reader (Axdpdf) shitat countpage in.vbnet

ReportViewer: как переключиться на альбомную ориентацию страниц в pdf файле?
Будьте добры подскажите пожалуйста! Формирую отчет с помощью элемента управления ReportViewer. Сохраняю его в pdf файл. Этот файл в...

Cmdtwain как сканировать несколько страниц в один pdf файл?
Сейчас в реестре на кнопку скана в принтере стоит запуск батника: set dir1=C:\TEST\ScanTo\ set strTime=_%Date%_%Time% set...

[JSP] JS скрипт из файла не работает, а если вручную писать - работает
У меня в 4 файлах нужен один и тот же скрипт, я и его вынес в отдельный файл appendLanguageParamToUrl.js function appendParameters() {...

Как настроить сканирование нескольких страниц в один файл PDF на МФУ kyocera ecosys m3145dn?
Сканируем через стандартное приложение "Факсы и сканирование Windows", используя и автоподатчик оригиналов, и стекло оригинала. На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru