You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PDF is 3 nested PDFs. /rmeta returns charsPerPage as a list for each (lengths 191, 17, 173). _parse keeps the first one flat, then appends each later list as a single element instead of concatenating, so you end up with 191 strings followed by 2 lists-of-strings in the same value. Normal iteration over it breaks (the TypeError above). #487 flattens it to 381 strings and it works.
Activity
[-]`pdf:charsPerPage` is fuckedup on nested PDFs[/-][+]`pdf:charsPerPage` is broken for nested PDFs[/+]chrismattmann commentedon Apr 26, 2026
Please see my comments on #487
ExtReMLapin commentedon Apr 26, 2026
I'm pretty sure the title was fine
chrismattmann commentedon Apr 26, 2026
And I'm not sure, actually, which is why I changed it. Please don't use profanity in issue titles or anywhere in this repo.
chrismattmann commentedon Jun 8, 2026
I don't think this is a bug and in fact changing this would change the default behavior that people have been using for a while. Thanks anyways!
ExtReMLapin commentedon Jun 8, 2026
Have you tried running it with Tika rest api and using the Tika python lib, it's clear to us at the office it's a bug
ExtReMLapin commentedon Jun 8, 2026
Alright now re-reading the whole thing I feel like I forgot to show a before-after delta and compare it to tika rest behavior.
(Out of bandwidth with everything tbh)
Follow-up with actual output. Clean install, stock
tika==3.1.0+ tika-server 3.1.0, the PDF above (very first post), no patches:Before (current main):
After #487:
This PDF is 3 nested PDFs.
/rmetareturnscharsPerPageas a list for each (lengths 191, 17, 173)._parsekeeps the first one flat, then appends each later list as a single element instead of concatenating, so you end up with 191 strings followed by 2 lists-of-strings in the same value. Normal iteration over it breaks (theTypeErrorabove). #487 flattens it to 381 strings and it works.