PyPDFForm 1.4.32__py3-none-any.whl → 1.4.34__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of PyPDFForm might be problematic. Click here for more details.

PyPDFForm/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Contains any object users might need."""
3
3
 
4
- __version__ = "1.4.32"
4
+ __version__ = "1.4.34"
5
5
 
6
6
  from .wrapper import FormWrapper, PdfWrapper
7
7
 
PyPDFForm/image.py CHANGED
@@ -42,7 +42,7 @@ def any_image_to_jpg(image_stream: bytes) -> bytes:
42
42
  return image_stream
43
43
 
44
44
  rgb_image = Image.new("RGB", image.size, (255, 255, 255))
45
- rgb_image.paste(image, mask=image.split()[3])
45
+ rgb_image.paste(image, mask=image.split()[3] if len(image.split()) == 4 else None)
46
46
 
47
47
  with BytesIO() as _file:
48
48
  rgb_image.save(_file, format="JPEG")
@@ -28,4 +28,4 @@ class Dropdown(Widget):
28
28
  def sample_value(self) -> int:
29
29
  """Sample value of the dropdown."""
30
30
 
31
- return 0
31
+ return len(self.choices) - 1
@@ -28,4 +28,4 @@ class Radio(Checkbox):
28
28
  def sample_value(self) -> int:
29
29
  """Sample value of the radiobutton."""
30
30
 
31
- return 0
31
+ return self.number_of_options - 1
@@ -42,4 +42,6 @@ class Text(Widget):
42
42
  def sample_value(self) -> str:
43
43
  """Sample value of the text field."""
44
44
 
45
- return self.name
45
+ return (
46
+ self.name[: self.max_length] if self.max_length is not None else self.name
47
+ )
PyPDFForm/patterns.py CHANGED
@@ -5,8 +5,8 @@ from pypdf.generic import (DictionaryObject, NameObject, NumberObject,
5
5
  TextStringObject)
6
6
 
7
7
  from .constants import (AP, AS, CA, DA, DV, FT, IMAGE_FIELD_IDENTIFIER, JS, MK,
8
- READ_ONLY, A, Btn, Ch, Ff, N, Off, Opt, Parent, Q, Sig,
9
- T, Tx, V, Yes)
8
+ MULTILINE, READ_ONLY, A, Btn, Ch, Ff, N, Off, Opt,
9
+ Parent, Q, Sig, T, Tx, V, Yes)
10
10
  from .middleware.checkbox import Checkbox
11
11
  from .middleware.dropdown import Dropdown
12
12
  from .middleware.image import Image
@@ -166,4 +166,16 @@ def update_created_text_field_alignment(annot: DictionaryObject, val: int) -> No
166
166
  annot[NameObject(Q)] = NumberObject(val)
167
167
 
168
168
 
169
- NON_ACRO_FORM_PARAM_TO_FUNC = {"alignment": update_created_text_field_alignment}
169
+ def update_created_text_field_multiline(annot: DictionaryObject, val: bool) -> None:
170
+ """Patterns to update to multiline for text annotations created by the library."""
171
+
172
+ if val:
173
+ annot[NameObject(Ff)] = NumberObject(
174
+ int(annot[NameObject(Ff)]) | MULTILINE # noqa
175
+ )
176
+
177
+
178
+ NON_ACRO_FORM_PARAM_TO_FUNC = {
179
+ ("TextWidget", "alignment"): update_created_text_field_alignment,
180
+ ("TextWidget", "multiline"): update_created_text_field_multiline,
181
+ }
PyPDFForm/widgets/base.py CHANGED
@@ -59,7 +59,9 @@ class Widget:
59
59
 
60
60
  for each in self.ALLOWED_NON_ACRO_FORM_PARAMS:
61
61
  if each in kwargs:
62
- self.non_acro_form_params.append((each, kwargs.get(each)))
62
+ self.non_acro_form_params.append(
63
+ ((type(self).__name__, each), kwargs.get(each))
64
+ )
63
65
 
64
66
  def watermarks(self, stream: bytes) -> List[bytes]:
65
67
  """Returns a list of watermarks after creating the widget."""
PyPDFForm/widgets/text.py CHANGED
@@ -19,6 +19,6 @@ class TextWidget(Widget):
19
19
  ("max_length", "maxlen"),
20
20
  ]
21
21
  COLOR_PARAMS = ["font_color", "bg_color", "border_color"]
22
- ALLOWED_NON_ACRO_FORM_PARAMS = ["alignment"]
22
+ ALLOWED_NON_ACRO_FORM_PARAMS = ["alignment", "multiline"]
23
23
  NONE_DEFAULTS = ["max_length"]
24
24
  ACRO_FORM_FUNC = "textfield"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPDFForm
3
- Version: 1.4.32
3
+ Version: 1.4.34
4
4
  Summary: The Python library for PDF forms.
5
5
  Home-page: https://github.com/chinapandaman/PyPDFForm
6
6
  Author: Jinge Li
@@ -1,11 +1,11 @@
1
- PyPDFForm/__init__.py,sha256=dRyorAY1LeHJMX_tnaa3mI1AhSqXyVKqqfgtE9oza-A,179
1
+ PyPDFForm/__init__.py,sha256=IXkImZCITKZizl91r2dPaHZg-re5HQ4i3CTi6wJLSS0,179
2
2
  PyPDFForm/adapter.py,sha256=WFP-r8FLeKa-D9mFO9AphOcuXgyeAI1Ak0d-YsqxsK4,861
3
3
  PyPDFForm/constants.py,sha256=FMsdOvnYpchEfki3gf_Y2Wj1SThUxMzsPbOx12_S1GA,1738
4
4
  PyPDFForm/coordinate.py,sha256=V_ZZQ1pXtVPAyfMJCX7fKoEimK7XwX6bU3VQ0nKOhQA,7314
5
5
  PyPDFForm/filler.py,sha256=pgMA7EC8axKUganmbk7X1uDdsb4OQQFoiI85td3pOO4,7486
6
6
  PyPDFForm/font.py,sha256=TbFLY4G72d7cQ3VG2g4HaYKROzQPQUmh6-8ynN6hzXY,5713
7
- PyPDFForm/image.py,sha256=0GV8PFgY5oLJFHmhPD1fG-_5SBEO7jVLLtxCc_Uodfo,1143
8
- PyPDFForm/patterns.py,sha256=JkgmznglwGroWsLJJTKsZVwWpooB2ncLc7TVsVcunys,4622
7
+ PyPDFForm/image.py,sha256=sjXPg9fjenNFj12a321xHX6JvuJs6PJRGLzpSNw5mVU,1180
8
+ PyPDFForm/patterns.py,sha256=9DFI-2cVZxzJKWmWBjK-dRSeAMNQr7ovHmw1YevrkiQ,5028
9
9
  PyPDFForm/template.py,sha256=a9rDzhHHfnYFo8cDnHnRE9UriUykXvrsyFKVGq9DYd0,13166
10
10
  PyPDFForm/utils.py,sha256=9omR-oT3OdZqioxpiGqA9_P0GSFC6mg4Y1xrLvWOzkk,4309
11
11
  PyPDFForm/watermark.py,sha256=L4LfzjjyJ6TDq9ad2dbtQYheBOic1_oZ7smhFFekNog,4725
@@ -13,18 +13,18 @@ PyPDFForm/wrapper.py,sha256=EC5ugli6Nj1q0un8je3f5xtRIfIxDSf9YrG50QipTPk,9715
13
13
  PyPDFForm/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  PyPDFForm/middleware/base.py,sha256=p-3XsZJ6d7ai2JFLF7LisMWi9yzM3pN7CsFECxtEoI0,751
15
15
  PyPDFForm/middleware/checkbox.py,sha256=3-9CMhhtyO9U6lLXDciW-59ng8uS4m6_clPB02mzV9c,1317
16
- PyPDFForm/middleware/dropdown.py,sha256=On4bn8U9NSzDqytLEQuP5nEGTanJUm_DjtykYcJpyrI,672
16
+ PyPDFForm/middleware/dropdown.py,sha256=7_DuacMQCRvp2pYxDvzEjUNKDUsTfU0aGTRMBtYWTIA,692
17
17
  PyPDFForm/middleware/image.py,sha256=xjPxRiGBWFEU3EQGGqJXY1iMX1kmr0jO8O9iVUC5rcc,177
18
- PyPDFForm/middleware/radio.py,sha256=ehaJoehEzZqxDVb5A6fJkYludeBmtV2Z5GZUPPfUWng,700
18
+ PyPDFForm/middleware/radio.py,sha256=ZDrRRF0Tu_3VBQ69x0G-IaZVf8FSOVz8xVpQsyiKhBc,725
19
19
  PyPDFForm/middleware/signature.py,sha256=m7tNvGZ7fQ0yuVKzSlLbNQ2IILo1GDnjzMDzMnYCKVM,1104
20
- PyPDFForm/middleware/text.py,sha256=LNY_9Y2tq3uQEneKoL4vgrJtFTva0KSYzuuzDb5METM,1055
20
+ PyPDFForm/middleware/text.py,sha256=BvdfmHu3GIWPMALahhHOz39mJPuMBx0c9ubYwi2kSZk,1144
21
21
  PyPDFForm/widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- PyPDFForm/widgets/base.py,sha256=R88F3TAaMYVZFwiTBX4xorI_gS54MjNQsg54t4eV9_c,3227
22
+ PyPDFForm/widgets/base.py,sha256=Re251Gxk22hvPE-jIlM3UMalcVGfP_nVJK3WAPYne78,3288
23
23
  PyPDFForm/widgets/checkbox.py,sha256=MGB6NGI-XMBz4j2erykgYOCd1pswvthuQ6UFowQOd4o,503
24
24
  PyPDFForm/widgets/dropdown.py,sha256=2_R5xcLUWAL0G4raVgWWtE7TJdiWJITay-Gtl8YI2QI,705
25
- PyPDFForm/widgets/text.py,sha256=5mMVJrYN0FtV4xoM_0e8fpxHjPPRtZk8GCBVffp8-aU,678
26
- PyPDFForm-1.4.32.dist-info/LICENSE,sha256=43awmYkI6opyTpg19me731iO1WfXZwViqb67oWtCsFY,1065
27
- PyPDFForm-1.4.32.dist-info/METADATA,sha256=4atuulfz6GtM6D-9ljT0pvOxPg9sDJbQKznmAfDxE_I,4151
28
- PyPDFForm-1.4.32.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
29
- PyPDFForm-1.4.32.dist-info/top_level.txt,sha256=GQQKuWqPUjT9YZqwK95NlAQzxjwoQrsxQ8ureM8lWOY,10
30
- PyPDFForm-1.4.32.dist-info/RECORD,,
25
+ PyPDFForm/widgets/text.py,sha256=sCB8CQAjh30QOGr8FTIDSk3X6dXSHJztOz6YkKEBDss,691
26
+ PyPDFForm-1.4.34.dist-info/LICENSE,sha256=43awmYkI6opyTpg19me731iO1WfXZwViqb67oWtCsFY,1065
27
+ PyPDFForm-1.4.34.dist-info/METADATA,sha256=MmBj7dW612MrApolQSFlpbmfydvlOBQXV7RWD25UjsA,4151
28
+ PyPDFForm-1.4.34.dist-info/WHEEL,sha256=5Mi1sN9lKoFv_gxcPtisEVrJZihrm_beibeg5R6xb4I,91
29
+ PyPDFForm-1.4.34.dist-info/top_level.txt,sha256=GQQKuWqPUjT9YZqwK95NlAQzxjwoQrsxQ8ureM8lWOY,10
30
+ PyPDFForm-1.4.34.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (73.0.1)
2
+ Generator: setuptools (75.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5