-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGES
507 lines (440 loc) · 16 KB
/
CHANGES
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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
Revision history for Perl module CAM::PDF
1.60 14 Aug 2013
[ENHANCEMENTS]
- Added min/max font size for form field filling.
Thanks to Gareth Tunley for the idea and the initial code
1.59 28 Jan 2013
[FIXES]
- Added support for the \134 escape, synonymous with \\
Thanks to Zakariyya Mughal for the patch
https://rt.cpan.org/Ticket/Display.html?id=83018
1.58 28 May 2012
Many thanks for Vadim Repin for numerous excellent bug reports!
[FIXES]
- Appended pdf revisions incorrectly incremented object generation numbers
https://rt.cpan.org/Ticket/Display.html?id=76513
- Appending pdf revisions was broken for non-linearized PDFs
https://rt.cpan.org/Ticket/Display.html?id=76514
- Allow multiple "startxref" statements in the last 1024 bytes -- unlikely, but possible
https://rt.cpan.org/Ticket/Display.html?id=77508
- Allow whitespace at the beginning of an indirect object (I think the PDF spec is
ambiguous about this)
https://rt.cpan.org/Ticket/Display.html?id=76512
- Allow backspace character
https://rt.cpan.org/Ticket/Display.html?id=76151
[DOCUMENTATION]
- mention $pdf->setPageContent($pagenum, $tree->toString());
Leo Lapworth and http://cpanforum.com/posts/13228
1.57 17 Dec 2011
[FIXES]
- Test for undef streams instead of truth, to allow streams like '' or '0'
Thanks to Thorsten Schwander for the patch
- Failed to parse PDF 1.5 cross reference streams where a
1024-byte boundary happened to fall between "endstream" and
"endobj" do to a logic error.
Thanks to Thorsten Schwander for the report and fix suggestion
1.56 13 Dec 2011
[FIXES]
- Workaround for corrupt PDFs that have 'n' records in their index that point to byte zero
of the file. Silently treat those as 'f' records. Yet another case of Acrobat supporting
broken PDFs, so the rest of us have to support them too...
Thanks to Mark Hunnibell for a sample PDF that demonstrated the problem
1.55 22 Jun 2011
[FIXES]
- Performance enhancement saving large files
https://rt.cpan.org/Ticket/Display.html?id=69021
Thanks to David Porter of Audacitas Limited for the patch
1.54 26 Mar 2011
[FIXES]
- appendPDF was broken intermittently if appended doc was bigger than main doc
Thanks to Charlie Katz for a sample PDF
http://chrisdolan.net/talk/2011/03/26/cam-pdf-fixes-appendpdf-bug/
1.53 25 Mar 2011
[FIXES]
- Handle PDF 1.5 case where "endstream" token crosses a 1024-byte boundary
Thanks to Charlie Katz for a sample PDF
- Allow whitespace after the 'stream' token for better interoperability
http://rt.cpan.org/Ticket/Display.html?id=42819
Credit to Vonne 'Robert' Bannavong
- Fix broken crunchjpgs.pl, patch submitted by George Greer
- Tolerate leading zeros on objnums and gennums
http://www.cpanforum.com/posts/11494
1.52 02 Oct 2008
[FIXES]
- Better handling of failures during filter loading
(rlane10 via http://www.nntp.perl.org/group/perl.cpan.testers/2008/10/msg2361238.html)
1.51 28 Sep 2008
[FIXES]
- Support PDFs with 24-bit offsets in the xref stream (PDF v1.5 only)
(thanks to Dan Richman for reporting the problem and providing an example)
1.50 20 Sep 2008
[ENHANCEMENTS]
- Support for reading PDF 1.5 compressed object streams and cross reference streams.
(we cannot write this style, but we can append to it)
[FIXES]
- Decompression of PNG-filtered streams was totally broken.
- Deleting pages now also deletes back references from annotations on that page.
- cleanse() now removes PieceInfo data. I have no idea what
PieceInfo does, but it had a whole bunch of page back links
that broke page deletion.
1.21 13 Aug 2008
[FIXES]
- Permit comments after the %%EOF, like Adobe Reader does. Thanks to
Malcolm Cook for pointing out the incompatibility.
1.20 26 Jun 2008
[ENHANCEMENTS]
- Support for Type 2 encryption (just reading, not writing)
- Support for reading PDFs where the owner and user passwords
are different
- Improvement to performance of node traversal, inspired by
RT #35555 (credit Eric Hall and his anonymous employee).
1.13 23 Apr 2008
[FIXES]
- setpdfbackground.pl computed RGB values incorrectly. Thanks to
Andrew Cadman for finding the bug and suggesting a fix
1.12 27 Nov 2007
[FIXES]
- I just realized that CAM::PDF::Renderer::Text was useless
because it just printed to STDOUT. Fixed to offer a
toString() method instead. Fuse::PDF wants this feature.
- Fixed a typo in the Synopsis of CAM::PDF::Content
1.11 20 Nov 2007
[ENHANCEMENTS]
- added previousRevision() and allRevisions() [invented in Fuse::PDF]
[INTERNALS]
- Compliance with Perl::Critic v1.080
1.10 24 Mar 2007
[FIXES]
- RT #25306, regression in rangeToArray
1.09 25 Feb 2007
[FIXES]
- Restore Perl 5.6.x compatibility which was broken in 1.08
(credit Brian Casey of rootlevelservices.com)
- Detect end-image tag accidentally embedded with an inline
image (credit Christian Drechsler)
[INTERNALS]
- Changed maintainer from CLOTHO@cpan.org to CDOLAN@cpan.org
1.08 17 Oct 2006
[FIXES]
- Add binmode() for Windows (RT #22136)
- Fix addFont() where there is no 'Font' property (RT #22049)
[INTERNALS]
- Compliance with Perl::Critic v0.21 and Bangs
- Moved the examples from scripts/ to bin/
1.07 11 Jul 2006
[ENHANCEMENTS]
- Add background_color options to fillFormFields
[FIXES]
- Add binmode() for Windows (RT #22136)
- Documentation and copyright year
[INTERNALS]
- Compliance with Perl::Critic v0.17
1.06 20 Mar 2006
[ENHANCEMENTS]
- Added scripts/setpdfbackground.pl program
- Added getPageDimensions() method
1.05 06 Dec 2005
[FIXES]
- Forgot to import Carp::cluck
1.04_01 30 Nov 2005
[ENHANCEMENTS]
- Docs
[INTERNALS]
- Refactoring
- Add an ENV flag to skip some tests
1.03 20 Oct 2005
[ENHANCEMENTS]
- Regression tests
[FIXES]
- Fixes for deletePages with initial support for Dests and Outlines
[INTERNALS]
- Some code cleanup
1.02_01 18 Oct 2005
Broken CPAN release!
[ENHANCEMENTS]
- Add options hash to the constructor.
- Documentation
[FIXES]
- Regression: parseStream must be able to be called as a class method
[INTERNALS]
- Code refactoring.
1.01 20 Sep 2005
[INCOMPATIBLE]
- The API for CAM::PDF::Decrypt changed. Several methods now
require a CAM::PDF instance as a first argument.
[FIXES]
- Remove instances of circular references so CAM::PDF instances
are able to be garbage collected.
1.00 19 Sep 2005
[FIXES]
- Fix an artificial limitation of the encryption module
0.99 22 Apr 2005
First CPAN release
[INCOMPATIBLE]
- Relicence from GPL-only to GPL+Artistic
[FIXES]
- Debug asciify shell script
- Read error on fontmetrics Width array (bounds error)
[INTERNALS]
- Add handy nodeType function
0.98 30 Nov 2004
[ENHANCEMENTS]
- Added better position support to GS
- Added support for color devices in G
- Prepend
[FIXES]
- addFont now checks that the font does not exist before adding
[INTERNALS]
- load Data::Dumper on demand only
0.97 09 Nov 2004
[FIXES]
- Tree validation fixes
- Pass textwidth into the renderText() function
- Page validation: string vs. hexstring
0.95 18 Jun 2004
[ENHANCEMENTS]
- New methods: addFont, wrapString
[FIXES]
- Debugged: graphic state computation
0.94 13 May 2004
[ENHANCEMENTS]
- New methods:
getFontNames
getFonts
getFontByBaseName
deEmbedFontByBaseName
deEmbedFontObj
- pdfinfo.pl - more detailed output
- deillustrate.pl - new script to remove Illustrator metadata
[FIXES]
- disable the "node has only one kid and no parent" error
This is a case where the delete code does a poor job of
maintaining a balanced page tree and then complains about it's
own bad work. This should eventually be fixed, but for now,
removing the die() is good enough.
0.93 29 Mar 2004
[FIXES]
- Fix for font de-embedding to remove unused font widths
0.92 30 Jan 2004
[ENHANCEMENTS]
- Add deEmbedFont() method
[FIXES]
- Fix a new bug in the page range code
0.91 30 Jan 2004
[ENHANCEMENTS]
- Add listfonts.pl
[FIXES]
- Fix bug regarding page number ranges in getpdftext.pl and
rendertext.pl
- Fix MANIFEST
0.90 18 Sep 2003
[INCOMPATIBLE]
- Rename revert.pl to revertpdf.pl
[ENHANCEMENTS]
- Add documentation to all scripts
- Ensure that all scripts respect PDF Modify permission
[INTERNALS]
- Add functions to facilitate testing PDF permissions
0.80 16 Sep 2003
[ENHANCEMENTS]
- Lots and lots and lots of documentation
- Use Module::Build
[FIXES]
- Caught a couple little bugs in Decrypt.pm
- Clean up some obsolete code in the Decrypt module
0.75 11 Sep 2003
[FIXES]
- Fix little bug in getStringWidth method
- Minor bugfix in debugging function
0.74 29 Aug 2003
[FIXES]
- Better handling for loading Text::PDF::Filter library
[INTERNALS]
- Split GS.pm into two parts for performance
0.73 11 Aug 2003
[FIXES]
- Font metric widths were not properly dereferenced, in the case
of indirect objects
- Page content "cm" directives (transform user coordinate system
matrix) were replacing the current matrix instead of appending
to it.
0.72 26 Jun 2003
[ENHANCEMENTS]
- Add documentation for extractPages
[FIXES]
- rangeToArray() bug fixes in the corner cases, added tests
- Fix number of tests
0.71 25 Jun 2003
[ENHANCEMENTS]
- add extractPages()
- add more tests
[FIXES]
- Fix bug in deletePages
0.70 24 Jun 2003
[ENHANCEMENTS]
- Convert parser to non-destructive for higher speed
[FIXES]
- Fix a bug in the test script
0.65 24 Jun 2003
[ENHANCEMENTS]
- Add toPDF() and needsSave() methods.
0.64 24 Jun 2003
[ENHANCEMENTS]
- Add PDF.pm dcumentation
- Add isLinearized() method
- Add more output for pdfinfo.pl
[FIXES]
- Fix bug in syntax for page "d" element (numbers, not just integers)
0.63 22 Jun 2003
[ENHANCEMENTS]
- Added PDF test document
- Added pdfinfo.pl script
- Added toString method on CAM::PDF::Content class
- Added writeInlineImage method to support above
[FIXES]
- Simple bug fix in writeAny error message
0.62 09 Jun 2003
[ENHANCEMENTS]
- Add Images renderer
- findImages() content method
- Add prependPDF to function list
[FIXES]
- bug fix
0.61 22 Apr 2003
[ENHANCEMENTS]
- Added prependPDF(), deletePages(), and rangeToArray() methods
- test.pl overhaul
- a little debugging output in getPage()
0.60 04 Apr 2003
[ENHANCEMENTS]
- Graphics state and rendering, some little code clean ups
- Make output function more mod-perl friendly
- Add page content validation
- Add parsing of inline images
- Add better Tj/TJ handline
- Add check option to getpdftext.pl
- Simplify BT treatment
- Enhance the content reading by using native PDF data type
parsing (converted the parsing functions to be either instance
or class methods)
- Special heuristic treatment of TJs
[FIXES]
- Add getpdftext.pl to the manifest
0.50 01 Apr 2003
[ENHANCEMENTS]
- Add page content parsing
- Add script to output page text content
- Overhauled fillForm to do things like use inherited form field
values, do justified text, do autosized text. This requires
the use of the Text::PDF font utilities.
- Handle multiline form widgets
[FIXES]
- Fix font autosizing to account for multiline fields
0.42 19 Feb 2003
[ENHANCEMENTS]
- Add getFont() function and supporting script
- Add deletePage() function
- Add deletepdfpage.pl script
[FIXES]
- Expect Encoding key in resource dictionary
- Expect font size zero in form widgets
TO DO: properly treat font size zero as autoscaled font
0.39 28 Oct 2002
[ENHANCEMENTS]
- Add return of number of successes to fillformfields
0.38 28 Oct 2002
[ENHANCEMENTS]
- Added clearAnnotations and addPageResources
[FIXES]
- Fix appendPDF
- Add appendpdf.pl to the MANIFEST
0.37 04 Oct 2002
[ENHANCEMENTS]
- Add appendPDF() function and a script to facilitate PDF merging
- Support for removal of decryption blocks
- deleteObject function
- Add support for the "null" object type
[FIXES]
- Fix and enable the cleanse function. I can't make this
function fail any longer. Yay!
- Fix typo for free block in xref dictionary creation
- Catch undef objects in fillFormFields
0.35 29 Jul 2002
[ENHANCEMENTS]
- Add clearFormFieldTriggers function
- Make buildNameTable work on fonts as well as xobjects
[FIXES]
- Fix dereference() documentation.
- Change "if" to "while" in check for cmd line arguments
[INTERNALS]
- Moved uninlineImages function into library from script
- Made some improvements to the embedded image detection logic
- Change data structure for nodes from arrayref to object (hashref)
0.31 14 May 2002
[INTERNALS]
- Reorganize directory
0.30 13 May 2002
[INCOMPATIBLE]
- Change package name from PDF to CAM::PDF
[ENHANCEMENTS]
- lots and lots of documentation
[FIXES]
- fix undef bug in getFormField
0.23 26 Apr 2002
bugfixes
0.22 19 Apr 2002
[ENHANCEMENTS]
- Password fields
- Make Makefile.PL smarter -- read MANIFEST itself
[FIXES]
- Fix delinearize for non-linearized files
- Font tweaks in form filling
- Add listpdffields.pl to the manifest
0.21 15 Apr 2002
[FIXES]
- Improvements to form handling
- Bug fixes in output of xref
0.20 12 Apr 2002
[ENHANCEMENTS]
- Add .pl files to manifest
0.10 12 Apr 2002
[INCOMPATIBLE]
- Change how the changestring code works with regex values
[ENHANCEMENTS]
- Form fields
- Remove extra files from make process
- Support for:
different PDF versions
concatenated strings
\ continued lines
\ escaped characters
cleaner output formatting
some dictionary sorting (special cases)
- mac2unix support in asciify
- verbose option in extractallimages.pl
- pdf versioning in rewritepdf.pl
- new revision reversion tool
[FIXES]
- Fix bug for \n in string
- Fix string output implementation (used to break Acrobat5 and Xpdf)
0.01 13 Mar 2002
[ENHANCEMENTS]
- JPG options; PDF stamping functions
- Cmd line options for tweaking jpg compression
- Add JPEG quality flag
- Added support for messing with images
[FIXES]
- Fix bug in escaped strings
- Fix permission modification
0.01 22 Feb 2002
[ENHANCEMENTS]
- encryption/decryption
- some documentation
0.01 18 Feb 2002
[ENHANCEMENTS]
- Search-and-replace text in a PDF doc
- Program to change all reference objects
- add cleanse feature (which breaks acrobat), fix some traverse bugs
- Inline image uninlining
0.00 15 Feb 2002
Initial import