Commit Graph

50 Commits

Author SHA1 Message Date
Michael R Sweet
6c1db141a1
Switch string pool code to an insertion sort - provides a modest 25% improvement
to open speeds on typical files.
2024-01-27 20:58:50 -05:00
Michael R Sweet
e882622233
Fix locale support (Issue #61) 2024-01-27 18:22:16 -05:00
Michael R Sweet
476013706e
Prep for 1.2.0 release, bump copyright. 2024-01-24 10:53:53 -05:00
Michael R Sweet
2a85baaf81
Increase the maximum number of object streams in a file (Issue #58) - most files
only contain 1 or 2...

Change the implementation of add/find object to use a custom binary insertion
sort algorithm rather than doing a qsort after every addition.  This results in
a significant improvement in open speed - from 2371 seconds (about 39.5 minutes)
to 3.1 seconds for one large test file (an ESRI standard).
2023-12-13 12:26:25 -05:00
Michael R Sweet
2b92044504
Support per-object file IDs (Issue #42) 2023-12-12 21:48:58 -05:00
Michael R Sweet
038fd8686b
Fix trailer dictionary handling (Issue #58)
Fix generation number handling for object 0 (Issue #59)
2023-12-11 19:56:00 -05:00
Michael R Sweet
c992b2ba89
Update the token reading code to protect against obvious format abuses.
Update the xref loading code to protect against looping xref tables.
2023-12-07 17:50:52 -05:00
Michael R Sweet
16c8b830b8
Add pdfioFileCreateNumber/StringObj functions (Issue #14) 2023-12-05 08:16:41 -05:00
Michael R Sweet
7ff051fc8b
Add pdfioContentTextNewLineShow/f functions (Issue #24) 2023-12-05 07:49:49 -05:00
Michael R Sweet
927452d1eb
Changelog and exports updates. 2023-12-04 21:22:13 -05:00
Michael R Sweet
41146adbdf
Adopt autoconf (Issue #54) 2023-12-03 19:16:34 -05:00
Michael R Sweet
cd80c3037d
Prep for 1.1.4 release. 2023-12-03 16:55:57 -05:00
Michael R Sweet
97934ab995
Add ToUnicode map. 2023-11-19 20:49:30 -05:00
Michael R Sweet
088646e1cf
Drop the FEFF prefix on Unicode strings. 2023-11-19 07:30:17 -05:00
Michael R Sweet
d36df63b57
Fix a TrueType CMAP decoding bug and add a NotoSans-Regular test page. 2023-11-18 22:15:52 -05:00
Michael R Sweet
0258384d53
Range check encrypted string length (Issue #52) 2023-11-18 18:22:11 -05:00
Michael R Sweet
9fec2195d0
Update changelog. 2023-11-15 10:14:02 -05:00
Michael R Sweet
4804db38a5
Fix missing ivlen initializer for 40-bit RC4 (Issue #51) 2023-11-15 08:43:07 -05:00
Michael R Sweet
600fa4ce59
Fix Unicode font handling (Issue #16) 2023-11-14 18:19:34 -05:00
Michael R Sweet
43114f43bf
Bump version. 2023-10-10 10:22:27 -04:00
Michael R Sweet
2e91e05d7b
Allow "compound" filters that consist of a single named filter (Issue #47) 2023-10-10 07:14:12 -04:00
Michael R Sweet
b0a66eef78
Fix reading of PDF files from Crystal Reports (Issue #45) 2023-10-09 10:04:20 -04:00
Michael R Sweet
19c45871fa
Update pdfioContentSetDashPattern to support setting solid line styles (Issue #41) 2023-10-06 15:47:27 -04:00
Michael R Sweet
7f6ffcda22
Fix a couple issues with parsing PDF files produced by Microsoft Reporting
Services (Issue #46)

- Odd cross-reference stream containing 3-byte generation number field for this
  16-bit value
- Odd empty hex strings
2023-10-06 10:46:30 -04:00
Michael R Sweet
a83f7f50ff
Allow extra whitespace/newlines after stream tokens (Issue #40) 2023-10-02 05:06:33 -04:00
Michael R Sweet
35c674b633
Fix another build issue. 2023-03-20 10:11:05 -04:00
Michael R Sweet
97d4955666
Fix potential denial-of-service in flate stream code. 2023-03-20 09:27:19 -04:00
Michael R Sweet
e138232a93
Fix build error due to mismatched function declarations. 2023-03-20 08:19:31 -04:00
Michael R Sweet
8d8225f4a1
Fix release date. 2023-02-07 17:10:48 -05:00
Michael R Sweet
7045d9dad9
Bump Windows version numbers and update exports file. 2023-02-06 17:36:54 -05:00
Michael R Sweet
4f10021e7e
Fix denial-of-service attack when reading corrupt PDF files. 2023-02-03 20:39:04 -05:00
Michael R Sweet
57d5894f33
Update pdfioStreamGetToken documentation (Issue #37) 2023-01-11 17:13:58 -05:00
Michael R Sweet
a3f3bbfe11
Fix pdfioFileGetAuthor, etc. APIs (Issue #33) 2022-07-12 18:36:08 -04:00
Michael R Sweet
067683cbcd
Add some protection against opening multiple streams in the same file at the same time. 2022-07-04 13:03:11 -04:00
Michael R Sweet
ae9a91719b
Add pdfioContentPathEnd function. 2022-07-03 10:01:10 -04:00
Michael R Sweet
1a17933635
Fix pdfioContentMatrixRotate function. 2022-07-01 20:30:40 -04:00
Michael R Sweet
acea6fdbed
Changelog. 2022-06-27 17:17:44 -04:00
Michael R Sweet
f4b8983c61
Implement pdfioDictIterateKeys API (Issue #31) 2022-06-27 10:17:00 -04:00
Michael R Sweet
316b0ad559
Add pdfioFileCreateTemporary function (Issue #29) 2022-05-15 22:52:53 -04:00
Michael R Sweet
cedd7d104f
Changelog update. 2022-03-02 09:47:14 -05:00
Michael R Sweet
f7f2969e3a
Fix pdfioStreamGetToken implementation (wasn't flushing input), update
pdfiototext code to better handle different text operators that affect the
location of the text.
2022-03-01 09:18:56 -05:00
Michael R Sweet
93a3fcea6c
Add missing pdfioPageGetNumStreams and pdfioPageOpenStream functions.
Add initial version of pdfiototext text extraction utility.
2022-02-28 15:00:25 -05:00
Michael R Sweet
bd2f9d44d4
Prep for 1.0.0 release. 2021-12-14 12:36:33 -05:00
Michael R Sweet
a431d7806f
Fix a few stack/buffer overflow bugs discovered by Bart, Steffan, and Mark from
the Radboud University NL (thanks!)

- Add depth argument to all value read functions that recurse
- Add depth argument to page tree loading code
- Validate xref stream sizes individually to avoid out-of-bounds access to local
  xref buffer.
2021-11-29 17:46:56 -05:00
Michael R Sweet
c53786e0e1
Changelog. 2021-11-07 11:29:18 -05:00
Michael R Sweet
1d5310a5f3
Bump version to 1.0b2. 2021-11-07 11:15:35 -05:00
Michael R Sweet
22c245ffd1 Update pdfioContentSetDashPattern to accept doubles (Issue #25) 2021-10-16 09:41:19 -04:00
Michael R Sweet
095a4c10d4 Fix some memory leaks (Issue #23) 2021-10-16 00:02:31 -04:00
Michael R Sweet
d1e8c966ed
Fix some Coverity-detected issues. 2021-10-01 11:38:04 -04:00
Michael R Sweet
7473bc3cd9
Add some supporting documentation files. 2021-09-27 07:42:19 -04:00