Allow "compound" filters that consist of a single named filter (Issue #47)

This commit is contained in:
Michael R Sweet 2023-10-10 07:14:12 -04:00
parent 7e3db6b639
commit 2e91e05d7b
No known key found for this signature in database
GPG Key ID: BE67C75EC81F3244
2 changed files with 12 additions and 1 deletions

View File

@ -12,6 +12,10 @@ v1.1.2 (TBD)
- Fixed an issue with PDF files produced by Crystal Reports (Issue #45) - Fixed an issue with PDF files produced by Crystal Reports (Issue #45)
- Fixed an issue with PDF files produced by Microsoft Reporting Services - Fixed an issue with PDF files produced by Microsoft Reporting Services
(Issue #46) (Issue #46)
- Fixed support for compound filters where the filter array consists of a
single named filter (Issue #47)
- Fixed builds on Windows - needed windows.h header for temporary files
(Issue #48)
v1.1.1 (March 20, 2023) v1.1.1 (March 20, 2023)

View File

@ -464,11 +464,18 @@ _pdfioStreamOpen(pdfio_obj_t *obj, // I - Object
// Try to decode/decompress the contents of this object... // Try to decode/decompress the contents of this object...
const char *filter = pdfioDictGetName(dict, "Filter"); const char *filter = pdfioDictGetName(dict, "Filter");
// Filter value // Filter value
pdfio_array_t *fa; // Filter array
if (!filter && (fa = pdfioDictGetArray(dict, "Filter")) != NULL && pdfioArrayGetSize(fa) == 1)
{
// Support single-valued arrays...
filter = pdfioArrayGetName(fa, 0);
}
if (!filter) if (!filter)
{ {
// No single filter name, do we have a compound filter? // No single filter name, do we have a compound filter?
if (pdfioDictGetArray(dict, "Filter")) if (fa)
{ {
// TODO: Implement compound filters... // TODO: Implement compound filters...
_pdfioFileError(st->pdf, "Unsupported compound stream filter."); _pdfioFileError(st->pdf, "Unsupported compound stream filter.");