-
Notifications
You must be signed in to change notification settings - Fork 1.5k
ROB: discard /I in choice fields for compatibility with acrobat #2614
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Wouldn't it be better to set both the |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2614 +/- ##
==========================================
+ Coverage 94.92% 94.93% +0.01%
==========================================
Files 50 50
Lines 8316 8318 +2
Branches 1667 1668 +1
==========================================
+ Hits 7894 7897 +3
Misses 261 261
+ Partials 161 160 -1 ☔ View full report in Codecov by Sentry. |
/I should only be used for multiple choice. here Acrobat is using it on a single selection field. It does not respect the specification. |
## What's new ### New Features (ENH) - Accept ETen-B5 and UniCNS-UTF16 encodings (#2721) by @pubpub-zz - Add decode_as_image() to ContentStreams (#2615) by @pubpub-zz - context manager for PdfReader (#2666) by @tibor-reiss - Add capability to set font and size in fields (#2636) by @pubpub-zz - Allow to pass input file without named argument (#2576) by @pubpub-zz ### Bug Fixes (BUG) - Fix deprecation for Ressources when using old constants (#2705) by @stefan6419846 - Fix images issue 4 bits encoding and LUT starting with UTF16_BOM (#2675) by @pubpub-zz - Reading large compressed images takes huge time to process (#2644) by @snanda85 - Highlighted Text Cannot Be Printed (#2604) by @Nifury - Fix UnboundLocalError on malformed pdf (#2619) by @farjasju ### Documentation (DOC) - Various improvements on docstrings and examples by @j-t-1 ### Robustness (ROB) - Cope with missing Standard 14 fonts in fields (#2677) by @pubpub-zz - Improve inline image extraction (#2622) by @pubpub-zz - Cope with loops in Fields tree (#2656) by @pubpub-zz - Discard /I in choice fields for compatibility with Acrobat (#2614) by @pubpub-zz - Cope with some issues in pillow (#2595) by @pubpub-zz - Cope with some image extraction issues (#2591) by @pubpub-zz ### Maintenance (MAINT) - Deprecate interiour_color with replacement interior_color (#2706) by @j-t-1 - Add deprecate_with_replacement to PdfWriter.find_bookmark (#2674) by @j-t-1 ### Code Style (STY) - Change Link to be a non-markup annotation (#2714) by @j-t-1 [Full Changelog](4.2.0...4.3.0)
Hi, I tracked this issue from #2611 , where i was facing the same issue of not being able to fill dropdown fields (text fields are alright). i installed the latest dev ver 4.3.0, but it seems to not make a difference. can I check what changes have been made to the update_page_form_field_values method and what I am supposed to do to fill up the Dropdown fields? I greatly appreciate any help, thank you very much def handle_bom(value):
if isinstance(value, str) and value.startswith(("\xfe\xff", "\xff\xfe")):
value = value.encode('latin1').decode('utf-16')
return value
# other code omitted
with open(pdf_file_base, "rb") as file:
reader = PdfReader(file)
writer = PdfWriter()
writer.append(reader)
for i, (index, row) in enumerate(group.iterrows()): # i am extracting data from excel sheet basically
data_to_fill = row.to_dict()
data_to_fill = {key: handle_bom(str(value)) for key, value in data_to_fill.items()} # i needed to do this to solve AttributeError: 'float object has no attribute 'startswith'
page = writer.pages[i]
writer.update_page_form_field_values(page, data_to_fill, auto_regenerate=True,) |
@chrischanwz |
For the changes: Just have a look at the diff of this PR: https://github.com/py-pdf/pypdf/pull/2614/files For further analysis, please open a new issue as already pointed out, which includes a standalone example we can reproduce. |
closes #2611