Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:pypdf [2012/07/18 15:25] [pyPDF] |
wiki:pypdf [2012/09/18 22:14] (текущий) Исправлена ссылка на русскую документацию |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ===== pyPDF ===== | ===== pyPDF ===== | ||
| - | Библиотека на чистом Python для работы с PDF. Вот на что способен модуль: | + | Это библиотека на чистом Python для работы с PDF. Вот на что способен модуль: |
| * извлечение информации из документа (название, автор, ...) | * извлечение информации из документа (название, автор, ...) | ||
| Строка 14: | Строка 14: | ||
| <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, без изменений | ||
| Строка 30: | Строка 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 = ( | ||
| Строка 47: | Строка 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}} | ||