Commit Graph

478 Commits

Author SHA1 Message Date
Michael R Sweet
c4e0421f62
Implement calibrated color support, including constants for a few standard
color spaces and a new color patch test page.

The grayscale test image from CUPS wasn't actually grayscale.
2021-05-31 09:31:00 -04:00
Michael R Sweet
627b04d9f0
Only use cppcheck on Linux. 2021-05-30 12:58:36 -04:00
Michael R Sweet
0d1c0cbb14
Fix clang/cppcheck commands. 2021-05-30 12:56:00 -04:00
Michael R Sweet
1f0ca4fd5b
Install cppcheck 2021-05-30 12:54:15 -04:00
Michael R Sweet
38557db43e
Add clang and cppcheck. 2021-05-30 12:51:26 -04:00
Michael R Sweet
9f0346df6d
Add math library. 2021-05-30 10:27:00 -04:00
Michael R Sweet
28b3fa5bab
Fix CI build flags. 2021-05-30 10:25:40 -04:00
Michael R Sweet
1967974f00
Add Github workflow/sponsor info. 2021-05-30 10:22:56 -04:00
Michael R Sweet
281f36cca4
Update logo. 2021-05-30 09:07:50 -04:00
Michael R Sweet
e8bcde9cba
Update name in README. 2021-05-30 07:43:35 -04:00
Michael R Sweet
246c2e4b41
Rename as PDFio for consistency.
Add PDFio logo image.

Move documentation to "doc" subdirectory.
2021-05-30 07:10:44 -04:00
Michael R Sweet
8bc538cc91
Update docos. 2021-05-29 21:27:49 -04:00
Michael R Sweet
10ab119922
Initial documentation. 2021-05-29 21:21:45 -04:00
Michael R Sweet
a18b8fd606
Switch to using double for numbers, since they are also used to record lengths
and other potentially large contents.
2021-05-29 21:16:21 -04:00
Michael R Sweet
35d22705fa
Implement pdfioObjCopy and pdfioPageCopy, with tests. 2021-05-29 20:00:48 -04:00
Michael R Sweet
37842066c6
Add test fonts for future use. 2021-05-29 20:00:35 -04:00
Michael R Sweet
f1fb09c6c0
Switch back to compressed page content streams. 2021-05-28 22:24:39 -04:00
Michael R Sweet
94cb915885
Fix xref table - wrong total number of objects.
Update pdfioContentDrawImage to take x/y offsets and sizes.
2021-05-28 22:05:44 -04:00
Michael R Sweet
fb853dadda
Fix some issues with the core file writing code.
Add test images to the unit tests.
2021-05-28 10:41:21 -04:00
Michael R Sweet
9cf024c1ce
Move test PDF file to new testfiles subdirectory.
Ignore generated PDF files from unit test program.
2021-05-28 09:31:42 -04:00
Michael R Sweet
128d5f0d42
Implement JPEG image object support. 2021-05-25 16:31:32 -04:00
Michael R Sweet
eb4477ce9b
Add content convenience functions. 2021-05-24 19:33:40 -04:00
Michael R Sweet
0ae8ddc515
Save work. 2021-05-18 19:08:50 -04:00
Michael R Sweet
45899f8a8d
Default CropBox should be the full MediaBox. 2021-05-16 18:31:45 -04:00
Michael R Sweet
35ea209c73
Initial unit tests for writing a PDF file. 2021-05-16 12:36:44 -04:00
Michael R Sweet
548ff7d119
Initial writing support. 2021-05-16 11:39:05 -04:00
Michael R Sweet
4bb81417a8
Start fleshing out writing/copying interfaces. 2021-05-15 09:29:37 -04:00
Michael R Sweet
17f2cc213e
Implement object mapping framework. 2021-05-13 13:18:01 -04:00
Michael R Sweet
7cb4d0a557
Update TODOs. 2021-05-10 21:33:26 -04:00
Michael R Sweet
b030c24ba1
Add pdfioObjGetArray. 2021-05-10 21:01:02 -04:00
Michael R Sweet
18853ca3d5
Increase token buffer to 256 bytes, to avoid overflow scenarios.
Add _pdfioTokenFlush to manually flush the token buffer.

Add more debug printfs.
2021-05-10 17:37:57 -04:00
Michael R Sweet
cfb5ca0ddc
Rework error/debug output. 2021-05-10 08:40:52 -04:00
Michael R Sweet
67ed214c59
Restructure unit test program to include unit tests and alternate error handling.
Don't log all strings after adding one.

Don't trim string buffer after reading a token.
2021-05-10 08:00:27 -04:00
Michael R Sweet
af8c731699
Update token reader to handle balanced parens and to allow arbitrary backslash escapes.
Update unit test to omit path information from filename.
2021-05-09 21:32:09 -04:00
Michael R Sweet
5f43761537
Initial support for reading pages dictionary. 2021-05-08 22:50:18 -04:00
Michael R Sweet
e1c145b10a
Defer loading the Root, Info, and Encrypt objects until we have loaded all of
the xref tables.
2021-05-08 22:05:40 -04:00
Michael R Sweet
4e4c47ab33
Add pdfioObjGetLength function. 2021-05-08 19:16:27 -04:00
Michael R Sweet
f8f048b87a
Implement Paeth predictor. 2021-05-08 19:04:42 -04:00
Michael R Sweet
979ccf19ff
Fix pdfioFileFindObject, fix cross-reference streams, implement support for
compressed object streams.
2021-05-08 11:21:49 -04:00
Michael R Sweet
9a919d478f
Rework token reading to be separate from the PDF file so we can add support
for compressed object streams.
2021-05-08 07:38:44 -04:00
Michael R Sweet
923409ceff
Save work on PNG predictors. Apparently object streams are also a common thing
for newer Acrobat so we'll need to implement those, too.
2021-05-07 19:51:38 -04:00
Michael R Sweet
44325ce2d9
Safe work on streams - still need to implement predictors 2021-05-07 08:47:49 -04:00
Michael R Sweet
c61d6ad686
Save work on streams. 2021-05-06 16:08:08 -04:00
Michael R Sweet
d2a0484d93
Rework debug functions, start xref stream support. 2021-05-06 09:51:48 -04:00
Michael R Sweet
c0b18a7e4f
Fix pdfioStringCreate - was returning a char ** instead of a char *, causing
crashes/corruption.

Optimize dict allocation/sorting.

Add more values that are displayed by the testpdfio unit test program.
2021-05-05 13:51:42 -04:00
Michael R Sweet
4abb91ca24
Save work on loading object dictionaries - have a memory issue someplace. 2021-05-04 21:31:58 -04:00
Michael R Sweet
7afdfc725c
Implement object loading. 2021-05-04 17:04:09 -04:00
Michael R Sweet
7733fbeb10
Rework object and xref processing to allow for sparse object lists and generation numbers. 2021-05-04 16:06:14 -04:00
Michael R Sweet
6287ede911
Update TODO. 2021-05-04 13:02:08 -04:00
Michael R Sweet
59ef6b48ed
Add some debug output, "debug" make target.
Fix loading of dicts, trailer.
2021-05-04 12:59:10 -04:00