Архив метки: pdf

Учебники по Python для начинающих, изданные в 2018 году

Python — один из самых популярных языков программирования. Ежегодно выходит большое количество книг, посвященных разным аспектам применения этого языка. И, конечно, постоянно появляются все новые учебные пособия по самым основам.

Мы уже публиковали подборки книг для начинающих питонистов.

Давайте теперь копнем глубже и рассмотрим книги 2018 года выпуска. Да, они не только из-под пресса, но вполне сохраняют актуальность. Читать

Как извлечь метаданные из pdf файла?

Как извлечь метаданные из докуметов Microsoft Office и Adobe PDF файлов

Ни для кого не секрет, что многие типы документов могут содержать метаданные, которые несут в себе огромное количество полезной для исcледователя информации.

Эти данные могут, например раскрыть информацию об дате создания,изменения, об авторе документа и т.д. Полученные данные могут быть отличным источником информации для вашего расследования инцидента информационной безопасности, а также при развездке на основе открытых источников (OSINT).

Существует множество онлайн ресурсов для проверки pdf файлов на содержание в них метаданных, однако когда речь идет о внутренних и/или конфиденциальных документах, отдавать их куда-то на сторону будет не самым лучшим решением. В такой момент на помощь может прийти программа MetaExtractor. Указанный иструмент позволяет извлечь метаданные сразу из большого колличества документов в течение нескольких минут.

Особенности:

  • Поддержка анализа файлов OpenOffice
  • Поддержка анализа solidWorks CAD чертежей
  • Собственный анализ файлов (не требует установки Office или Acrobat)
  • Поддержка форматов файлов Office 2003/2007/2010/2013
  • Поддержка документов Adobe PDF
  • Можно выбрать опеределенную директорию для анализа всех файлов, содержащихся в ней
  • Можно выбрать несколько отдельных файлов
  • Экспорт результатов в CSV для удобного анализа и отчетности
  • Интерфейс программы поддерживает сортировку по дате/времени
  • Содержит более 40 полей метаданных
  • Бесплатен как для личного, так и для коммерческого использования
  • Подходит для Windows
  • Не требует установки (portable)

 

 

Скачать можно на официальном сайте производителя Скачать

 



2021-01-26T15:42:34
Аудит ИБ

Как конвертировать любой PDF в Excel онлайн бесплатно без электронной почты

PDF — отличный формат для сохранения целостности ваших табличных данных, а также для сохранения их внешнего вида и форматирования на нескольких устройствах и в операционных системах. Это связано с тем, что PDF-файлы не предназначены для редактирования и выглядят одинаково на всех устройствах (мобильных и настольных), работающих в любой ОС (Windows, iOS, Android и т. д.).

 

Как конвертировать любой PDF в Excel онлайн бесплатно без электронной почты Читать

PyPDF2: новый форк pyPdf (Перевод)

Сегодня узнал, проект pyPDF НЕ умер, как я думал раньше. На самом деле он перешёл в PyPDF2 (видите небольшую разницу в написании?). Есть так же вероятность того, что кто-то занимается и оригинальной версией проекта. При желании, за судьбой PyPDF2 можно следить на reddit. Тем временем я решил посмотреть, чем же PyPDF2 отличается от оригинала. Так что если у Вас есть пара свободных минут — милости просим.

Введение в PyPDF2

Два года назад я уже  писал про pyPDF, а совсем недавно мне как раз пришлось погрузиться в различные библиотеки для работы с PDF на Python, так что появление нового форка пришлось кстати. Мы возьмём несколько моих старых примеров, запустим их в PyPDF2 и посмотрим, как они сработают.
# Соединяем два PDF
from PyPDF2 import PdfFileReader, PdfFileWriter
 
output = PdfFileWriter
()
pdfOne = PdfFileReader
(open( "somepathtoaPDf", "rb"))
pdfTwo = PdfFileReader
(open("someotherpathtoaPDf", "rb"))
 
output.
addPage(pdfOne.getPage(0))
output.
addPage(pdfTwo.getPage(0))
 
outputStream =
open(r"output.pdf", "wb")
output.
write(outputStream)
outputStream.
close()
На моём Windows 7 это сработало без проблем. Как Вы можете предположить, всё, что этот код делает — создаёт два объекта PdfFileReader и прочитывает в каждом первую страницу. После этого, он добавляет эти две страницы в наш PdfFileWriter. И, наконец, мы открываем новый файл и записываем в него PDF. Вот и всё! Мы только что создали новый документ из двух разных PDF!
Теперь давайте попробуем скрипт для поворота страницы из другой моей страницы:
from PyPDF2 import PdfFileWriter, PdfFileReader
 
output = PdfFileWriter()
input1 = PdfFileReader(file("document1.pdf", "rb"))
output.addPage(input1.getPage(1).rotateClockwise(90))
# output.addPage(input1.getPage(2).rotateCounterClockwise(90))
 
outputStream = file("output.pdf", "wb")
output.write(outputStream)
outputStream.close()
Этот скрипт так же сработал на моей машине. Очень даже хорошо. Мой последний тест на соответствие должен проверить, можем ли мы вытаскивать данные так же, как мог оригинальный pyPdf. Давайте попробуем прочитать метаданные:
>>> from PyPDF2 import PdfFileReader
 
>>> p = r'C:UsersmdriscollDocumentsreportlab-userguide.pdf'
 
>>> pdf = PdfFileReader(open(p, 'rb'))
 
>>> pdf.documentInfo
 
{'/ModDate': u'D:20120629155504', '/CreationDate': u'D:20120629155504', '/Producer': u'GPL Ghostscript 8.15', '/Title': u'reportlab-userguide.pdf', '/Creator': u'Adobe Acrobat 10.1.3', '/Author': u'mdriscoll'}
>>> pdf.getNumPages()
 
120
>>> info = pdf.getDocumentInfo()
 
>>> info.author
 
u'mdriscoll'
>>> info.creator
 
u'Adobe Acrobat 10.1.3'
>>> info.producer
 
u'GPL Ghostscript 8.15'
>>> info.title
 
u'reportlab-userguide.pdf'
Тоже очень хорошо, кроме поля автора. Я определённо не автор этого документа и я не знаю, почему PyPDF2  решил, что я им являюсь. Всё остальное сработало верно. Теперь давайте посмотрим, что тут нового.

Что нового в PyPDF2

Одна из вещей, которую я сразу заметил как только взглянул на исходники PyPDF2, это то, что он добавляет несколько новых методов в PdfFileReader и PdfFileWriter. Кроме того, я заметил, что появился совершенно новый модуль merger.py, который содержит класс PdfFileMerger. Поскольку никакой нормальной документации нет — придётся лезть «под капот». Единственный новый метод, который был добавлен в reader — это getOutlines, который позволяет получить эскизы документа (outlines), если они есть. В writer появилась возможность добавить bookmarks и named destinations. Не так уж и много, но дарёному коню в зубы не смотрят. Но больше всего меня вдохновил новый класс PdfFileMerger, который мне напомнил почти погибший проект Stapler. PdfFileMerger позволяет нам объединить несколько PDF в один, используя соединение, вставку и вырезку и их комбинации.
Давайте попробуем?
import PyPDF2
 
path = open('path/to/hello.pdf', 'rb')
path2 = open('path/to/another.pdf', 'rb')
 
merger = PyPDF2.PdfFileMerger()
 
merger.merge(position=0, fileobj=path2)
merger.merge(position=2, fileobj=path)
merger.write(open("test_out.pdf", 'wb'))
Тут мы соединяем два файла вместе. В первый файл вместо третьей страницы будет добавлен второй файл, а как только содержание второго файла закончится будет продолжен первый файл. Это проще, чем проходиться по страницам двух документов и соединять их. Команда merge имеет следующую сигнатуру и строку документации, которая хорошо всё это описывает:
>>> merge(position, file, bookmark=None, pages=None, import_bookmarks=True)
 
Сливает страницы из исходного документа, определённого в
"file" в файл вывода на место, определённое в "position".
 
Опционально Вы можете определить закладку, которая будет установлена на начало этого файла. Для этого надо передать текст закладки в параметре
"bookmark".
 
Вы можете запретить импорт закладок из исходного документа если передадите значение False параметру
"import_bookmarks".
 
Вы можете так же использовать параметр "pages" для того, чтобы добавить только некоторые страницы исходного файла. Для этого надо задать их диапазон.
Есть так же метод append, который аналогичен команде merge, но вместо того, чтобы сливать файлы, он добавляет их в конец исходного файла. Вот скрипт для примера:
import PyPDF2
 
path = open('path/to/hello.pdf', 'rb')
path2 = open('path/to/another.pdf', 'rb')
 
merger = PyPDF2.PdfFileMerger()
 
merger.append(fileobj=path2)
merger.append(fileobj=path)
merger.write(open("test_out2.pdf", 'wb'))
И совсем не больно!

Подводим итоги

Мне кажется, это хорошая альтернатива для работы с PDF. Я могу комбинировать и разделять PDF при помощи PyPDF2 даже проще, чем с оригинальным pyPdf. Кроме того, я надеюсь, что PyPDF не умрёт, так как у него есть спонсоры, оплачивающие его разработку. Согласно потокам reddit есть даже шанс, что оригинальный pyPdf будет переработан и в конце концов оба эти проекта сольются в дружеском экстазе. Но, вне зависимости от того, чем всё закончится, я рад, что разработка его возобновилась и надеюсь, что она не скоро прекратится.

Домашнее чтение

Автор: Ishayahu Lastov

Как вставить документ PDF (пдф) в страницу сайта

Возможностей несколько, но, к сожалению, не все имеют кроссбраузерную поддержку — одни требуют установки плагина, другие вовсе не отражаются. Лучший способ — это вставка кода с использованием скрипта Google Docs Viewer plugin for jQuery. Читать

Как обрезать поля в pdf файле

Для обрезки полей в Linux есть утилита pdfcrop. Эта утилита является частью пакета texlive-extra-utils:

# apt-get install texlive-extra-utils
$ pdfcrop --clip --margin 5 исходный_файл.pdf целевой_файл.pdf

Автор: Roman Brovko