forked from py-pdf/pypdf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
230 lines (143 loc) · 7.55 KB
/
CHANGELOG
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
Version 1.13, 2010-12-04
------------------------
- Fixed a typo in code for reading a "\b" escape character in strings.
- Improved __repr__ in FloatObject.
- Fixed a bug in reading octal escape sequences in strings.
- Added getWidth and getHeight methods to the RectangleObject class.
- Fixed compatibility warnings with Python 2.4 and 2.5.
- Added addBlankPage and insertBlankPage methods on PdfFileWriter class.
- Fixed a bug with circular references in page's object trees (typically
annotations) that prevented correctly writing out a copy of those pages.
- New merge page functions allow application of a transformation matrix.
- To all patch contributors: I did a poor job of keeping this ChangeLog
up-to-date for this release, so I an missing attributions here for any
changes you submitted. Sorry! I'll do better in the future.
Version 1.12, 2008-09-02
------------------------
- Added support for XMP metadata.
- Fix reading files with xref streams with multiple /Index values.
- Fix extracting content streams that use graphics operators longer than 2
characters. Affects merging PDF files.
Version 1.11, 2008-05-09
------------------------
- Patch from Hartmut Goebel to permit RectangleObjects to accept NumberObject
or FloatObject values.
- PDF compatibility fixes.
- Fix to read object xref stream in correct order.
- Fix for comments inside content streams.
Version 1.10, 2007-10-04
------------------------
- Text strings from PDF files are returned as Unicode string objects when
pyPdf determines that they can be decoded (as UTF-16 strings, or as
PDFDocEncoding strings). Unicode objects are also written out when
necessary. This means that string objects in pyPdf can be either
generic.ByteStringObject instances, or generic.TextStringObject instances.
- The extractText method now returns a unicode string object.
- All document information properties now return unicode string objects. In
the event that a document provides docinfo properties that are not decoded by
pyPdf, the raw byte strings can be accessed with an "_raw" property (ie.
title_raw rather than title)
- generic.DictionaryObject instances have been enhanced to be easier to use.
Values coming out of dictionary objects will automatically be de-referenced
(.getObject will be called on them), unless accessed by the new "raw_get"
method. DictionaryObjects can now only contain PdfObject instances (as keys
and values), making it easier to debug where non-PdfObject values (which
cannot be written out) are entering dictionaries.
- Support for reading named destinations and outlines in PDF files. Original
patch by Ashish Kulkarni.
- Stream compatibility reading enhancements for malformed PDF files.
- Cross reference table reading enhancements for malformed PDF files.
- Encryption documentation.
- Replace some "assert" statements with error raising.
- Minor optimizations to FlateDecode algorithm increase speed when using PNG
predictors.
Version 1.9, 2006-12-15
-----------------------
- Fix several serious bugs introduced in version 1.8, caused by a failure to
run through our PDF test suite before releasing that version.
- Fix bug in NullObject reading and writing.
Version 1.8, 2006-12-14
-----------------------
- Add support for decryption with the standard PDF security handler. This
allows for decrypting PDF files given the proper user or owner password.
- Add support for encryption with the standard PDF security handler.
- Add new pythondoc documentation.
- Fix bug in ASCII85 decode that occurs when whitespace exists inside the
two terminating characters of the stream.
Version 1.7, 2006-12-10
-----------------------
- Fix a bug when using a single page object in two PdfFileWriter objects.
- Adjust PyPDF to be tolerant of whitespace characters that don't belong
during a stream object.
- Add documentInfo property to PdfFileReader.
- Add numPages property to PdfFileReader.
- Add pages property to PdfFileReader.
- Add extractText function to PdfFileReader.
Version 1.6, 2006-06-06
-----------------------
- Add basic support for comments in PDF files. This allows us to read some
ReportLab PDFs that could not be read before.
- Add "auto-repair" for finding xref table at slightly bad locations.
- New StreamObject backend, cleaner and more powerful. Allows the use of
stream filters more easily, including compressed streams.
- Add a graphics state push/pop around page merges. Improves quality of
page merges when one page's content stream leaves the graphics
in an abnormal state.
- Add PageObject.compressContentStreams function, which filters all content
streams and compresses them. This will reduce the size of PDF pages,
especially after they could have been decompressed in a mergePage
operation.
- Support inline images in PDF content streams.
- Add support for using .NET framework compression when zlib is not
available. This does not make pyPdf compatible with IronPython, but it
is a first step.
- Add support for reading the document information dictionary, and extracting
title, author, subject, producer and creator tags.
- Add patch to support NullObject and multiple xref streams, from Bradley
Lawrence.
Version 1.5, 2006-01-28
-----------------------
- Fix a bug where merging pages did not work in "no-rename" cases when the
second page has an array of content streams.
- Remove some debugging output that should not have been present.
Version 1.4, 2006-01-27
-----------------------
- Add capability to merge pages from multiple PDF files into a single page
using the PageObject.mergePage function. See example code (README or web
site) for more information.
- Add ability to modify a page's MediaBox, CropBox, BleedBox, TrimBox, and
ArtBox properties through PageObject. See example code (README or web site)
for more information.
- Refactor pdf.py into multiple files: generic.py (contains objects like
NameObject, DictionaryObject), filters.py (contains filter code),
utils.py (various). This does not affect importing PdfFileReader
or PdfFileWriter.
- Add new decoding functions for standard PDF filters ASCIIHexDecode and
ASCII85Decode.
- Change url and download_url to refer to new pybrary.net web site.
Version 1.3, 2006-01-23
-----------------------
- Fix new bug introduced in 1.2 where PDF files with \r line endings did not
work properly anymore. A new test suite developed with various PDF files
should prevent regression bugs from now on.
- Fix a bug where inheriting attributes from page nodes did not work.
Version 1.2, 2006-01-23
-----------------------
- Improved support for files with CRLF-based line endings, fixing a common
reported problem stating "assertion error: assert line == "%%EOF"".
- Software author/maintainer is now officially a proud married person, which
is sure to result in better software... somehow.
Version 1.1, 2006-01-18
-----------------------
- Add capability to rotate pages.
- Improved PDF reading support to properly manage inherited attributes from
/Type=/Pages nodes. This means that page groups that are rotated or have
different media boxes or whatever will now work properly.
- Added PDF 1.5 support. Namely cross-reference streams and object streams.
This release can mangle Adobe's PDFReference16.pdf successfully.
Version 1.0, 2006-01-17
-----------------------
- First distutils-capable true public release. Supports a wide variety of PDF
files that I found sitting around on my system.
- Does not support some PDF 1.5 features, such as object streams,
cross-reference streams.