С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
1

питон и пдф

08.03.2017, 11:04. Показов 1935. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос у меня такой, есть код, который извлекает изображения с пдф-ок, сам код отсюда http://stackoverflow.com/quest... 87#2695387
Есть пдф-ка, с которой чего-то не извлекаются изображения.
https://www.dropbox.com/s/dv10... g.pdf?dl=0
А чего так, я не пойму.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
08.03.2017, 11:04
Ответы с готовыми решениями:

Задача: Взять заданную строку в кавычки вида «» . можно ли сразу решение и листинг пж . питон. код питон питон
Взять заданную строку в кавычки вида «» .

Диаграммы в ПДФ
Подскажите плиз, как реализовать диаграммы в PDF? Сайт стоит на спринге, для вывода на экран...

Пдф в экзешнике
Вопрос предельно прост. Можно ли при нажатии ссылки в делфи сделать так, чтобы программой...

Из джаваскрипта в пдф
Привет. Помогите с такой штукой Есть сайт на Спринге. Есть модуль, который выводит отчеты...

12
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
08.03.2017, 16:54 2
Цитата Сообщение от izuchaju_python Посмотреть сообщение
Есть пдф-ка, с которой чего-то не извлекаются изображения.
izuchaju_python, то есть вообще не находит '\xff\xd8'? Так может они не в jpeg-е хранятся, нужно спецификацию pdf смотреть

Добавлено через 18 минут
У меня извлеклось 35 изображений.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
08.03.2017, 18:41  [ТС] 3
shvyrevvg, если б вы показали код, то был бы благодарен.
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
08.03.2017, 18:43 4
Лучший ответ Сообщение было отмечено izuchaju_python как решение

Решение

Python
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
import sys
 
pdf = file(sys.argv[1], "rb").read()
 
startmark = "\xff\xd8"
startfix = 0
endmark = "\xff\xd9"
endfix = 2
i = 0
 
njpg = 0
while True:
    istream = pdf.find("stream", i)
    if istream < 0:
        break
    istart = pdf.find(startmark, istream, istream+20)
    if istart < 0:
        i = istream+20
        continue
    iend = pdf.find("endstream", istart)
    if iend < 0:
        raise Exception("Didn't find end of stream!")
    iend = pdf.find(endmark, iend-20)
    if iend < 0:
        raise Exception("Didn't find end of JPG!")
     
    istart += startfix
    iend += endfix
    print "JPG %d from %d to %d" % (njpg, istart, iend)
    jpg = pdf[istart:iend]
    jpgfile = file("jpg%d.jpg" % njpg, "wb")
    jpgfile.write(jpg)
    jpgfile.close()
     
    njpg += 1
    i = iend
1
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
09.03.2017, 10:45  [ТС] 5
shvyrevvg, еще б понять, как его запускать. это питон2 судя по отсутствию скобок на 29 строке? Вместо слова file должно быть что-то другое? Путь с именем документа?
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.03.2017, 10:47 6
izuchaju_python, python имяскрипта.py путькфайлу.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
09.03.2017, 10:48  [ТС] 7
shvyrevvg, так это третий питон?
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.03.2017, 10:49 8
izuchaju_python, ну Вы же сами уже ответили) 2ой питон.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
09.03.2017, 10:50  [ТС] 9
Второй, все понял.

Добавлено через 1 минуту
Сейчас бы разобраться, как его сделать под третий...И как сделать, чтобы он дальше первой страницы не шел, то было б вообще круто.

Добавлено через 12 секунд
shvyrevvg, thanks
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.03.2017, 10:57 10
izuchaju_python, по идее print исправить, а вот на счет первой страницы, тут сложнее, он же просто сигнатуру картинки ищет, самое просто задавать количество картинок, тогда в while njpg<сколько картинок нужно найти.
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
09.03.2017, 11:00  [ТС] 11
shvyrevvg, команды file ведь в третьем питоне нет, заменил на open, добавил скобки, теперь буду бороться с такими ошибками, как TypeError: a bytes-like object is required, not 'str'. Как понял, нужно encode() дописать, только как дописать на 16 строке это еще не понял.
0
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
09.03.2017, 11:20 12
Лучший ответ Сообщение было отмечено izuchaju_python как решение

Решение

izuchaju_python, не уверен, что правильно все исправил, но работает
Python
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
# Extract jpg's from pdf's. Quick and dirty.
import sys
 
pdf = open(sys.argv[1], "rb").read()
 
startmark = b'\xff\xd8'
startfix = 0
endmark = b'\xff\xd9'
endfix = 2
i = 0
 
njpg = 0
while True:
    istream = pdf.find('stream'.encode(), i)
    if istream < 0:
        break
    istart = pdf.find(startmark, istream, istream+20)
    if istart < 0:
        i = istream+20
        continue
    iend = pdf.find('endstream'.encode(), istart)
    if iend < 0:
        raise Exception("Didn't find end of stream!")
    iend = pdf.find(endmark, iend-20)
    if iend < 0:
        raise Exception("Didn't find end of JPG!")
 
    istart += startfix
    iend += endfix
    print("JPG %d from %d to %d" % (njpg, istart, iend))
    jpg = pdf[istart:iend]
    jpgfile = open("jpg%d.jpg" % njpg, "wb")
    jpgfile.write(jpg)
    jpgfile.close()
 
    njpg += 1
    i = iend
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
09.03.2017, 11:44  [ТС] 13
shvyrevvg, спасибо!
0
09.03.2017, 11:44
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
09.03.2017, 11:44
Помогаю со студенческими работами здесь

Выгрузка в пдф
я делаю выгрузку данных с сайта в файл csv Возможно ли делать выгрузку в пдф без установки...

Qt сформировать пдф
как сформировать пдф чтобы подставляло данные в определенные места в текст?

Обработка пдф-файла
Приветствую. Есть pdf-файл. В нем 50 листов. На каждом листе по 2 формы ПД-4 (банковская...

Не открывается ПДФ в Яндексе
Здравствуйте! Ещё вчера пдф открывался в яндексе. А сегодня - увы! Происходит выброс в проводник...

Кнопка скроллинга ПДФ
Имеется сайт для показа на сенсорных мониторах (типа платежных терминалов). На этом сайте в...

Программа анализатов ПДФ
Форумчане, возникла следующая проблема, необходимо написать прогу, которая сможет анализировать...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru