![рдЫрд╡рд┐](https://habrastorage.org/getpro/habr/post_images/357/b42/d3b/357b42d3bb619ed6951ecc69ff845340.jpg)
рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдкреАрдбреАрдПрдл рдореЗрдВ рд╣рдм рд╕реЗ рдЪрдпрдирд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдФрд░ рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШреВрдо рд░рд╣рд╛ рд╣реИред
рджрд░рдЕрд╕рд▓, рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди рдереЛрдбрд╝рд╛ рдЦрд╛рд▓реА рд╕рдордп рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВрдиреЗ рдЕрдкрдиреА рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╣реИрдмрд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛
рдпреБрдкреАрдбреА:
- рдлрд┐рдХреНрд╕реНрдб "рдкреЗрдЬ рдкрд░ рдмрд╣реБрдд рдмрдбрд╝рд╛" рдмрдЧ ( рдЬреАрдереВрдм рдкрд░ рдЕрдзрд┐рдХ) рдзрдиреНрдпрд╡рд╛рдж рдмрд┐рдлрд┐рдбреЛрдХ рдФрд░ рд╕реНрдЯреНрд░реАрдЯрдЕрдВрдЧреЗрд▓
- рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╡рд┐рд╖рдп рд▓реЗрдЦрдХ
- рдХреЗрд╡рд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреНрд▓реЙрдЧ рд╕реЗ рдкрд╕рдВрджреАрджрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рд╛
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдЬрдЧрд░-рдкреАрд╕рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдиреАрдЪреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдкрд╛рд╕ рдореЗрдВ рдирд╣реАрдВ
рд▓реЙрдиреНрдЪ рдЖрджреЗрд╢:
рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП fav2pdf.py рдХрд╛ рд╕рдВрдкрд╛рджрди
user = 'vrtx' -
site = user + '.habrahabr.ru'
from_date = '1 2011' - ,
to_date = '' - ,
рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ
python fav2pdf.py
рдирд┐рд╖реНрдХрд░реНрд╖ рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛
Processed page 1 of 25:
----------------------
1 Topic: ->50
2 Topic: Android->[] Android
3 Topic: Mobile Development-> Samsung Bada
4 Topic: ->Brainfuck
Topic: -> , 1.0, is locked!
----------------------
Prepare PDF...
рдирддреАрдЬрддрди, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╣рдореЗрдВ рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдкрдХреЗ рдЙрдкрдирд╛рдо рдХреЗ рдирд╛рдо рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИ
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- рд╕рд╛рдордЧреНрд░реА рдореБрдЦрдкреГрд╖реНрда
- рдХрд┐рд╕реА рд╡рд┐рд╖рдп рдХреЗ рд╢реАрд░реНрд╖рдХ рд╕реЗ рд╣реИрдмрд░ рдкрд░ рдПрдХ рд╡рд┐рд╖рдп рдмрдирддрд╛ рд╣реИ
- рдкреЗрдЬ рд╣рдмрд░ рдХреЗ рдореЛрдмрд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЦреАрдВрдЪреЗ рдЧрдП рд╣реИрдВ
- рддрд┐рдерд┐ рддрдХ рдЪрдпрди рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИрдмреНрд░реИрдЧ рдЬрд░реНрдирд▓ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ :)
- рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╕рдВрджреАрджрд╛ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╕рдВрджреАрджрд╛ рдореЗрдВ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдЙрд╕ рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝рд╛ рдерд╛, рдФрд░ рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд╛рд░реАрдЦ рд╕реЗ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕рднреА рдкрд╕рдВрджреАрджрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╛рдБрдЯрдирд╛ рдкрдбрд╝рд╛,
рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЧрддрд┐ (3 рдорд┐рдирдЯ рдореЗрдВ 230 рд╡рд┐рд╖рдпреЛрдВ ~ рдХреЗ рдЖрджреЗрд╢ рдХреЗ 256k рдкрд░ рдкрдврд╝рдирд╛) рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкреНрд░рд┐рдпред
рд╡рд┐рдкрдХреНрд╖:
- рдмрдВрдж рдмреНрд▓реЙрдЧ рдирд╣реАрдВ рдкрдврд╝рддрд╛ (рд▓реЙрдЧрд┐рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ)
- рдореБрдЭреЗ рдЕрд╕реНрдерд╛рдпреА minuses рд╕реЗ рдЙрдореНрдореАрдж рд╣реИ - рдкреНрд░реА рдЯреИрдЧ (рджреЗрд╢реА рд╕рд┐рдВрдЯреЗрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ) рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде glitches, рд╢рд╛рдпрдж рд╣реА рдХрднреА рд▓реЗрдЦрдХреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА
- рдкреАрдЖрдИрдПрд╕рдП рдореЗрдВ рд╕реАрдорд┐рдд рд╕реАрдПрд╕рдПрд╕ рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░рдг рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ рдЕрдиреНрдп рдЦрд╛рдорд┐рдпрд╛рдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
- рдкреАрд╕рд╛-рдкрд╛рд░реНрд╕рд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдпреБрдХреНрдд рд▓рд┐рдВрдХ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ
- рдореИрдВрдиреЗ рдХреЛрдИ "рдореВрд░реНрдЦ рд╕рдВрд░рдХреНрд╖рдг" рдирд╣реАрдВ рдХрд┐рдпрд╛
рдореБрдЭреЗ рдЕрднреА рддрдХ рдХреЛрдИ рднреА рдордВрддреНрд░реА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдореЗрдВ рдорд┐рд▓реЗ рдереЗ, рдФрд░ рдпрд╣ 230 рд╡рд┐рд╖рдпреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ + рдореИрдВрдиреЗ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛
![рдЫрд╡рд┐](https://habrastorage.org/getpro/habr/post_images/b33/3ab/39b/b333ab39b2797d819088500ef5536251.jpg)
рдЕрднреА рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЬреАрдердм рд▓рд┐рдВрдХ
рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢, рдзрдиреНрдпрд╡рд╛рдж desiderata :
1. Python 2.7.1 x86 ( 3.0 , x64 _imaging)
2. pisa 3.0.31 :
Windows Installer,
C:\python27\python.exe setup.py install
ReportLab Toolkit 2.5, html5lib 0.9, PyPdf 1.13, PIL 1.1.7, setuptools 0.6c11, pisa 3.0.33.
3. C:\Python27\Lib\site-packages\PIL\Image.py .
4. fav2pdf.py .
5. C:\Python27\python.exe fav2pdf.py
6. PROFIT .
PS рдХрд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ pisa_document.py рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХреА ", рдкрдВрдХреНрддрд┐ 229, pDDVment рдореЗрдВ
рдлрд┐рд░ рднреА, рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдИ рдЧрдИ рдереА рдФрд░ рдЗрд╕рдореЗрдВ рдкрд╕рдВрджреАрджрд╛ рд╕реЗ рд╕рднреА рд▓реЗрдЦ рд╢рд╛рдорд┐рд▓ рдереЗред
рдкреБрдирд╢реНрдЪ
рдпрджрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ PIL рдкреИрдЪ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1498, in split
if self.im.bands == 1:
AttributeError: 'NoneType' object has no attribute 'bands'
рд╕рдорд╛рдзрд╛рди:
# HG changeset patch -- Bitbucket.org
# Project pil-2009-raclette
# URL bitbucket.org/effbot/pil-2009-raclette/overview
# User Fredrik Lundh <fredrik@effbot.org>
# Date 1272193085 -7200
# Node ID fb7ce579f5f96f7d9008f72ab03eef4f1c6db609
# Parent 45c2debe0fc3d9632372a15826b1b64a35ff43c4
Fixed split after open bug (regression in 1.1.7).
--- a/PIL/Image.py
+++ b/PIL/Image.py
@@ -1494,11 +1494,11 @@ class Image:
def split(self):
"Split image into bands"
+ self.load()
if self.im.bands == 1:
ims = [self.copy()]
else:
ims = []
- self.load()
for i in range(self.im.bands):
ims.append(self._new(self.im.getband(i)))
return tuple(ims)
рдкреАрдПрд╕ 2
рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реВрдВ, рдЕрдЧрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред