Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:pypdf [2012/07/18 15:13] [pyPDF] |
wiki:pypdf [2012/09/18 22:14] (текущий) Исправлена ссылка на русскую документацию |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== pyPDF ===== | ===== pyPDF ===== | ||
- | Библиотека на чистом Python для работы с PDF. Вот на что способен модуль: | + | Это библиотека на чистом Python для работы с PDF. Вот на что способен модуль: |
* извлечение информации из документа (название, автор, ...) | * извлечение информации из документа (название, автор, ...) | ||
Строка 7: | Строка 7: | ||
* постраничное объединение документа, | * постраничное объединение документа, | ||
* обрезка страниц, | * обрезка страниц, | ||
- | * merging multiple pages into a single page, | + | * слияние нескольких страниц в одну, |
- | * encrypting and decrypting PDF files. | + | * шифровка и дешифровка PDF файлов. |
- | By being Pure-Python, it should run on any Python platform without any dependencies on external libraries. It can also work entirely on StringIO objects rather than file streams, allowing for PDF manipulation in memory. It is therefore a useful tool for websites that manage or manipulate PDFs. | + | |
+ | Так как все это на чистом Python, то библиотека должны работать под любой платформой Python без всяких зависимостей от внешних библиотек. | ||
+ | Модуль может также работать полностью на StringIO объектах охотнее, чем на файловых потоках, разрешая проводить манипуляции с PDF в оперативной памяти, а не на жестком диске. Поэтому это довольно полезная штука для сайтов, которые управляют или оперируют PDF документами. | ||
<note>Пакет ''pyPDF'' доступен из официального репозитория: [[app>python-pypdf|этот замечательный пакет]]</note> | <note>Пакет ''pyPDF'' доступен из официального репозитория: [[app>python-pypdf|этот замечательный пакет]]</note> | ||
+ | ===== Документация ===== | ||
+ | |||
+ | * Английская официальная - [[http://pybrary.net/pyPdf/|на сайте проекта]] | ||
+ | * Переведенная мной документация - [[wiki:pypdf_documentation|Документация к pyPDF на русском языке]] | ||
+ | |||
===== Простой пример ===== | ===== Простой пример ===== | ||
<code python example.py> | <code python example.py> | ||
+ | #!/usr/bin/env python | ||
+ | # coding: utf-8 | ||
+ | |||
from pyPdf import PdfFileWriter, PdfFileReader | from pyPdf import PdfFileWriter, PdfFileReader | ||
output = PdfFileWriter() | output = PdfFileWriter() | ||
- | input1 = PdfFileReader(file("document1.pdf", "rb")) | + | input1 = PdfFileReader(file("Документ.pdf", "rb")) |
# выводим на экран заголовок файла document1.pdf | # выводим на экран заголовок файла document1.pdf | ||
- | print "title = %s" % (input1.getDocumentInfo().title) | + | print "Заголовок = %s" % (input1.getDocumentInfo().title) |
# добавляем в output страницу №1 из inpu1, без изменений | # добавляем в output страницу №1 из inpu1, без изменений | ||
Строка 28: | Строка 38: | ||
output.addPage(input1.getPage(1).rotateClockwise(90)) | output.addPage(input1.getPage(1).rotateClockwise(90)) | ||
- | # add page 3 from input1, rotated the other way: | + | # добавляем страницу №3 из input1, повернутую другим способом: |
output.addPage(input1.getPage(2).rotateCounterClockwise(90)) | output.addPage(input1.getPage(2).rotateCounterClockwise(90)) | ||
- | # alt: output.addPage(input1.getPage(2).rotateClockwise(270)) | + | # или так: output.addPage(input1.getPage(2).rotateClockwise(270)) |
- | # add page 4 from input1, but first add a watermark from another pdf: | + | # добавляем страницу №4 из imput1, но сначала добавляем водяной знак из другого pdf: |
page4 = input1.getPage(3) | page4 = input1.getPage(3) | ||
- | watermark = PdfFileReader(file("watermark.pdf", "rb")) | + | watermark = PdfFileReader(file("ВодянойЗнак.pdf", "rb")) |
page4.mergePage(watermark.getPage(0)) | page4.mergePage(watermark.getPage(0)) | ||
- | # add page 5 from input1, but crop it to half size: | + | # добавляем страницу 5 из imput1, но обрезаем ее до половинного размера: |
page5 = input1.getPage(4) | page5 = input1.getPage(4) | ||
page5.mediaBox.upperRight = ( | page5.mediaBox.upperRight = ( | ||
Строка 45: | Строка 55: | ||
output.addPage(page5) | output.addPage(page5) | ||
- | # print how many pages input1 has: | + | # посмотрим, сколько страниц содержит imput1: |
- | print "document1.pdf has %s pages." % input1.getNumPages() | + | print "Документ.pdf имеет %s стр." % input1.getNumPages() |
- | # finally, write "output" to document-output.pdf | + | # Наконец, записываем "output" в файл "Результат.pdf" |
- | outputStream = file("document-output.pdf", "wb") | + | outputStream = file("Результат.pdf", "wb") |
output.write(outputStream) | output.write(outputStream) | ||
outputStream.close() | outputStream.close() | ||
</code> | </code> | ||
- | ===== Ссылки ===== | ||
- | |||
- | * [[FIXME]] | ||
{{tag>pypdf}} | {{tag>pypdf}} |