hexapdf 1.5.0 → 1.7.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +54 -0
- data/README.md +8 -7
- data/examples/022-outline.rb +5 -1
- data/examples/032-acro_form_list_and_fill.rb +47 -0
- data/examples/033-text_extraction.rb +34 -0
- data/lib/hexapdf/cli/debug_info.rb +98 -0
- data/lib/hexapdf/cli/images.rb +2 -2
- data/lib/hexapdf/cli/info.rb +2 -0
- data/lib/hexapdf/cli/inspect.rb +5 -1
- data/lib/hexapdf/cli.rb +2 -0
- data/lib/hexapdf/configuration.rb +8 -0
- data/lib/hexapdf/content/canvas.rb +1 -1
- data/lib/hexapdf/content/smart_text_extractor.rb +305 -0
- data/lib/hexapdf/content.rb +2 -0
- data/lib/hexapdf/digital_signature/signing/default_handler.rb +1 -15
- data/lib/hexapdf/digital_signature/signing/signed_data_creator.rb +21 -8
- data/lib/hexapdf/document.rb +7 -3
- data/lib/hexapdf/encryption/security_handler.rb +3 -1
- data/lib/hexapdf/filter/brotli_decode.rb +88 -0
- data/lib/hexapdf/filter.rb +1 -0
- data/lib/hexapdf/font/cmap.rb +10 -6
- data/lib/hexapdf/font/true_type/builder.rb +1 -1
- data/lib/hexapdf/font/true_type/font.rb +13 -0
- data/lib/hexapdf/font/true_type/subsetter.rb +7 -2
- data/lib/hexapdf/font/true_type/table/directory.rb +5 -0
- data/lib/hexapdf/font/true_type.rb +1 -0
- data/lib/hexapdf/layout/style.rb +6 -2
- data/lib/hexapdf/parser.rb +29 -4
- data/lib/hexapdf/revision.rb +6 -2
- data/lib/hexapdf/task/pdfa.rb +108 -1
- data/lib/hexapdf/type/acro_form/field.rb +4 -1
- data/lib/hexapdf/type/acro_form/form.rb +4 -0
- data/lib/hexapdf/type/acro_form/text_field.rb +4 -2
- data/lib/hexapdf/type/annotations/widget.rb +9 -0
- data/lib/hexapdf/type/document_security_store.rb +80 -0
- data/lib/hexapdf/type/page.rb +11 -0
- data/lib/hexapdf/type.rb +1 -0
- data/lib/hexapdf/version.rb +1 -1
- data/test/data/pdfa/mismatching_glyph_widths_cidfont_type2.pdf +0 -0
- data/test/hexapdf/content/test_smart_text_extractor.rb +129 -0
- data/test/hexapdf/digital_signature/common.rb +19 -5
- data/test/hexapdf/digital_signature/signing/test_signed_data_creator.rb +29 -4
- data/test/hexapdf/digital_signature/test_signatures.rb +3 -3
- data/test/hexapdf/encryption/test_security_handler.rb +7 -5
- data/test/hexapdf/filter/test_brotli_decode.rb +34 -0
- data/test/hexapdf/font/true_type/table/test_directory.rb +5 -3
- data/test/hexapdf/font/true_type/test_builder.rb +9 -0
- data/test/hexapdf/font/true_type/test_font.rb +17 -3
- data/test/hexapdf/font/true_type/test_subsetter.rb +4 -3
- data/test/hexapdf/task/test_pdfa.rb +72 -0
- data/test/hexapdf/test_document.rb +13 -0
- data/test/hexapdf/test_parser.rb +55 -3
- data/test/hexapdf/test_revision.rb +27 -6
- data/test/hexapdf/type/acro_form/test_field.rb +5 -0
- data/test/hexapdf/type/acro_form/test_form.rb +6 -0
- data/test/hexapdf/type/acro_form/test_text_field.rb +7 -1
- data/test/hexapdf/type/annotations/test_widget.rb +11 -0
- data/test/hexapdf/type/test_page.rb +8 -0
- data/test/test_helper.rb +6 -0
- metadata +41 -4
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hexapdf
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas Leitner
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-04-13 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: cmdparse
|
|
@@ -77,6 +77,20 @@ dependencies:
|
|
|
77
77
|
- - ">="
|
|
78
78
|
- !ruby/object:Gem::Version
|
|
79
79
|
version: 3.1.2
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: brotli
|
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - "~>"
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '0.7'
|
|
87
|
+
type: :development
|
|
88
|
+
prerelease: false
|
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - "~>"
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0.7'
|
|
80
94
|
- !ruby/object:Gem::Dependency
|
|
81
95
|
name: kramdown
|
|
82
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -97,14 +111,28 @@ dependencies:
|
|
|
97
111
|
requirements:
|
|
98
112
|
- - "~>"
|
|
99
113
|
- !ruby/object:Gem::Version
|
|
100
|
-
version: '
|
|
114
|
+
version: '6.0'
|
|
115
|
+
type: :development
|
|
116
|
+
prerelease: false
|
|
117
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
118
|
+
requirements:
|
|
119
|
+
- - "~>"
|
|
120
|
+
- !ruby/object:Gem::Version
|
|
121
|
+
version: '6.0'
|
|
122
|
+
- !ruby/object:Gem::Dependency
|
|
123
|
+
name: minitest-mock
|
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
|
125
|
+
requirements:
|
|
126
|
+
- - "~>"
|
|
127
|
+
- !ruby/object:Gem::Version
|
|
128
|
+
version: '5.27'
|
|
101
129
|
type: :development
|
|
102
130
|
prerelease: false
|
|
103
131
|
version_requirements: !ruby/object:Gem::Requirement
|
|
104
132
|
requirements:
|
|
105
133
|
- - "~>"
|
|
106
134
|
- !ruby/object:Gem::Version
|
|
107
|
-
version: '5.
|
|
135
|
+
version: '5.27'
|
|
108
136
|
- !ruby/object:Gem::Dependency
|
|
109
137
|
name: reline
|
|
110
138
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -320,6 +348,8 @@ files:
|
|
|
320
348
|
- examples/029-composer_fallback_fonts.rb
|
|
321
349
|
- examples/030-pdfa.rb
|
|
322
350
|
- examples/031-acro_form_java_script.rb
|
|
351
|
+
- examples/032-acro_form_list_and_fill.rb
|
|
352
|
+
- examples/033-text_extraction.rb
|
|
323
353
|
- examples/emoji-smile.png
|
|
324
354
|
- examples/emoji-wink.png
|
|
325
355
|
- examples/machupicchu.jpg
|
|
@@ -327,6 +357,7 @@ files:
|
|
|
327
357
|
- lib/hexapdf/cli.rb
|
|
328
358
|
- lib/hexapdf/cli/batch.rb
|
|
329
359
|
- lib/hexapdf/cli/command.rb
|
|
360
|
+
- lib/hexapdf/cli/debug_info.rb
|
|
330
361
|
- lib/hexapdf/cli/files.rb
|
|
331
362
|
- lib/hexapdf/cli/fonts.rb
|
|
332
363
|
- lib/hexapdf/cli/form.rb
|
|
@@ -355,6 +386,7 @@ files:
|
|
|
355
386
|
- lib/hexapdf/content/operator.rb
|
|
356
387
|
- lib/hexapdf/content/parser.rb
|
|
357
388
|
- lib/hexapdf/content/processor.rb
|
|
389
|
+
- lib/hexapdf/content/smart_text_extractor.rb
|
|
358
390
|
- lib/hexapdf/content/transformation_matrix.rb
|
|
359
391
|
- lib/hexapdf/data_dir.rb
|
|
360
392
|
- lib/hexapdf/dictionary.rb
|
|
@@ -393,6 +425,7 @@ files:
|
|
|
393
425
|
- lib/hexapdf/filter.rb
|
|
394
426
|
- lib/hexapdf/filter/ascii85_decode.rb
|
|
395
427
|
- lib/hexapdf/filter/ascii_hex_decode.rb
|
|
428
|
+
- lib/hexapdf/filter/brotli_decode.rb
|
|
396
429
|
- lib/hexapdf/filter/crypt.rb
|
|
397
430
|
- lib/hexapdf/filter/encryption.rb
|
|
398
431
|
- lib/hexapdf/filter/flate_decode.rb
|
|
@@ -527,6 +560,7 @@ files:
|
|
|
527
560
|
- lib/hexapdf/type/catalog.rb
|
|
528
561
|
- lib/hexapdf/type/cid_font.rb
|
|
529
562
|
- lib/hexapdf/type/cmap.rb
|
|
563
|
+
- lib/hexapdf/type/document_security_store.rb
|
|
530
564
|
- lib/hexapdf/type/embedded_file.rb
|
|
531
565
|
- lib/hexapdf/type/file_specification.rb
|
|
532
566
|
- lib/hexapdf/type/font.rb
|
|
@@ -626,6 +660,7 @@ files:
|
|
|
626
660
|
- test/data/images/truecolour-srgb-8bit.png
|
|
627
661
|
- test/data/images/ycck.jpg
|
|
628
662
|
- test/data/minimal.pdf
|
|
663
|
+
- test/data/pdfa/mismatching_glyph_widths_cidfont_type2.pdf
|
|
629
664
|
- test/data/standard-security-handler/README
|
|
630
665
|
- test/data/standard-security-handler/bothpwd-aes-128bit-V4.pdf
|
|
631
666
|
- test/data/standard-security-handler/bothpwd-aes-256bit-V5-R5.pdf
|
|
@@ -663,6 +698,7 @@ files:
|
|
|
663
698
|
- test/hexapdf/content/test_operator.rb
|
|
664
699
|
- test/hexapdf/content/test_parser.rb
|
|
665
700
|
- test/hexapdf/content/test_processor.rb
|
|
701
|
+
- test/hexapdf/content/test_smart_text_extractor.rb
|
|
666
702
|
- test/hexapdf/content/test_transformation_matrix.rb
|
|
667
703
|
- test/hexapdf/digital_signature/common.rb
|
|
668
704
|
- test/hexapdf/digital_signature/signing/test_default_handler.rb
|
|
@@ -696,6 +732,7 @@ files:
|
|
|
696
732
|
- test/hexapdf/filter/common.rb
|
|
697
733
|
- test/hexapdf/filter/test_ascii85_decode.rb
|
|
698
734
|
- test/hexapdf/filter/test_ascii_hex_decode.rb
|
|
735
|
+
- test/hexapdf/filter/test_brotli_decode.rb
|
|
699
736
|
- test/hexapdf/filter/test_crypt.rb
|
|
700
737
|
- test/hexapdf/filter/test_encryption.rb
|
|
701
738
|
- test/hexapdf/filter/test_flate_decode.rb
|