pdfluent 1.0.0b17.post4__tar.gz
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.
- pdfluent-1.0.0b17.post4/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/PKG-INFO +362 -0
- pdfluent-1.0.0b17.post4/README.md +323 -0
- pdfluent-1.0.0b17.post4/cff-parser/.gitignore +6 -0
- pdfluent-1.0.0b17.post4/cff-parser/Cargo.toml +38 -0
- pdfluent-1.0.0b17.post4/cff-parser/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/cff-parser/LICENSE-MIT +20 -0
- pdfluent-1.0.0b17.post4/cff-parser/README.md +62 -0
- pdfluent-1.0.0b17.post4/cff-parser/examples/dump.rs +77 -0
- pdfluent-1.0.0b17.post4/cff-parser/examples/tounicode.rs +20 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/argstack.rs +84 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/cff.rs +1483 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/charset.rs +265 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/charstring.rs +609 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/dict.rs +322 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/encoding.rs +247 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/index.rs +236 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/lib.rs +281 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/parser.rs +748 -0
- pdfluent-1.0.0b17.post4/cff-parser/src/std_names.rs +393 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/Cargo.toml +14 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/README.md +32 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/ast.rs +180 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/builtins.rs +2165 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/error.rs +64 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/interpreter.rs +1104 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/lexer.rs +791 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/lib.rs +24 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/parser.rs +884 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/som_bridge.rs +420 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/src/value.rs +143 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/tests/conformance.rs +916 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/tests/edge_cases.rs +93 -0
- pdfluent-1.0.0b17.post4/formcalc-interpreter/tests/f211_test.rs +182 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/Cargo.toml +13 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/README.md +56 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/src/bit_reader.rs +69 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/src/decode.rs +151 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/src/lib.rs +642 -0
- pdfluent-1.0.0b17.post4/hayro-ccitt/src/state_machine.rs +349 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/CHANGELOG.md +13 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/Cargo.toml +23 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/README.md +57 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/arithmetic_decoder.rs +302 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/bitmap.rs +170 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/generic.rs +685 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/generic_refinement.rs +309 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/halftone.rs +272 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/mod.rs +233 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/pattern.rs +143 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/symbol.rs +800 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/decode/text.rs +878 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/error.rs +275 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/file.rs +214 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/gray_scale.rs +199 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/huffman_table.rs +656 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/huffman_tables_generated.rs +727 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/integer_decoder.rs +117 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/lazy.rs +29 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/lib.rs +738 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/page_info.rs +149 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/reader.rs +173 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/segment.rs +419 -0
- pdfluent-1.0.0b17.post4/hayro-jbig2/src/symbol_id_decoder.rs +40 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/CHANGELOG.md +13 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/Cargo.toml +29 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/README.md +55 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/assets/CGATS001Compat-v2-micro.icc +0 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/assets/LAB.icc +0 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/assets/LICENSE.txt +116 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/assets/ProPhoto-v2-micro.icc +0 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/assets/README.md +4 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/error.rs +288 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/integration.rs +340 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/arithmetic_decoder.rs +348 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/bitplane.rs +1026 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/build.rs +329 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/codestream.rs +998 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/decode.rs +527 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/idwt.rs +778 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/mct.rs +105 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/mod.rs +89 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/progression.rs +338 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/rect.rs +45 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/segment.rs +343 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/tag_tree.rs +238 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/j2c/tile.rs +919 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/box.rs +102 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/cdef.rs +91 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/cmap.rs +52 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/colr.rs +143 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/icc.rs +83 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/mod.rs +147 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/jp2/pclr.rs +78 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/lib.rs +870 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/log.rs +28 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/math.rs +576 -0
- pdfluent-1.0.0b17.post4/hayro-jpeg2000/src/reader.rs +181 -0
- pdfluent-1.0.0b17.post4/lopdf/CHANGELOG.md +13 -0
- pdfluent-1.0.0b17.post4/lopdf/Cargo.toml +73 -0
- pdfluent-1.0.0b17.post4/lopdf/LICENSE +21 -0
- pdfluent-1.0.0b17.post4/lopdf/README.md +80 -0
- pdfluent-1.0.0b17.post4/lopdf/assets/example.pdf +21 -0
- pdfluent-1.0.0b17.post4/lopdf/examples/test_decompress.rs +41 -0
- pdfluent-1.0.0b17.post4/lopdf/src/bookmarks.rs +161 -0
- pdfluent-1.0.0b17.post4/lopdf/src/cmap_section.rs +28 -0
- pdfluent-1.0.0b17.post4/lopdf/src/common_data_structures/mod.rs +103 -0
- pdfluent-1.0.0b17.post4/lopdf/src/content.rs +46 -0
- pdfluent-1.0.0b17.post4/lopdf/src/creator.rs +386 -0
- pdfluent-1.0.0b17.post4/lopdf/src/datetime.rs +291 -0
- pdfluent-1.0.0b17.post4/lopdf/src/destinations.rs +82 -0
- pdfluent-1.0.0b17.post4/lopdf/src/document.rs +986 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encodings/cmap.rs +281 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encodings/glyphnames.rs +4501 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encodings/mappings.rs +1820 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encodings/mod.rs +198 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encryption/algorithms.rs +1572 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encryption/crypt_filters.rs +271 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encryption/pkcs5.rs +51 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encryption/rc4.rs +68 -0
- pdfluent-1.0.0b17.post4/lopdf/src/encryption.rs +1049 -0
- pdfluent-1.0.0b17.post4/lopdf/src/error.rs +169 -0
- pdfluent-1.0.0b17.post4/lopdf/src/filters/mod.rs +1 -0
- pdfluent-1.0.0b17.post4/lopdf/src/filters/png.rs +171 -0
- pdfluent-1.0.0b17.post4/lopdf/src/font.rs +137 -0
- pdfluent-1.0.0b17.post4/lopdf/src/incremental_document.rs +149 -0
- pdfluent-1.0.0b17.post4/lopdf/src/lib.rs +58 -0
- pdfluent-1.0.0b17.post4/lopdf/src/load_options.rs +83 -0
- pdfluent-1.0.0b17.post4/lopdf/src/object.rs +1270 -0
- pdfluent-1.0.0b17.post4/lopdf/src/object_stream.rs +337 -0
- pdfluent-1.0.0b17.post4/lopdf/src/outlines.rs +149 -0
- pdfluent-1.0.0b17.post4/lopdf/src/parser/cmap_parser.rs +1111 -0
- pdfluent-1.0.0b17.post4/lopdf/src/parser/mod.rs +1001 -0
- pdfluent-1.0.0b17.post4/lopdf/src/parser_aux.rs +717 -0
- pdfluent-1.0.0b17.post4/lopdf/src/processor.rs +370 -0
- pdfluent-1.0.0b17.post4/lopdf/src/reader.rs +1773 -0
- pdfluent-1.0.0b17.post4/lopdf/src/save_options.rs +83 -0
- pdfluent-1.0.0b17.post4/lopdf/src/toc.rs +150 -0
- pdfluent-1.0.0b17.post4/lopdf/src/writer.rs +813 -0
- pdfluent-1.0.0b17.post4/lopdf/src/xobject.rs +288 -0
- pdfluent-1.0.0b17.post4/lopdf/src/xref.rs +338 -0
- pdfluent-1.0.0b17.post4/lopdf/tests/test_filters.rs +552 -0
- pdfluent-1.0.0b17.post4/pdf-annot/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-annot/Cargo.toml +24 -0
- pdfluent-1.0.0b17.post4/pdf-annot/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-annot/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/annotation.rs +249 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/appearance.rs +49 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/appearance_writer.rs +394 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/builder/appearance.rs +207 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/builder/mod.rs +568 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/builder/page_attach.rs +96 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/builder/tests.rs +668 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/builder/types.rs +233 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/error.rs +22 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/flatten.rs +513 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/geometric.rs +137 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/lib.rs +28 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/link.rs +424 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/markup.rs +110 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/stamp.rs +259 -0
- pdfluent-1.0.0b17.post4/pdf-annot/src/types.rs +320 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/Cargo.toml +31 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/bin/debug_transparency.rs +170 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/bin/profile_compliance.rs +41 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/check.rs +19080 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/lib.rs +499 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/pdfa.rs +3788 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/pdfua.rs +351 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/pdfx.rs +325 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/pdfx_gen.rs +295 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/tagged.rs +575 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/tagged_gen.rs +543 -0
- pdfluent-1.0.0b17.post4/pdf-compliance/src/xmp.rs +3971 -0
- pdfluent-1.0.0b17.post4/pdf-docx/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-docx/Cargo.toml +23 -0
- pdfluent-1.0.0b17.post4/pdf-docx/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-docx/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-docx/src/error.rs +43 -0
- pdfluent-1.0.0b17.post4/pdf-docx/src/layout.rs +413 -0
- pdfluent-1.0.0b17.post4/pdf-docx/src/lib.rs +572 -0
- pdfluent-1.0.0b17.post4/pdf-docx/src/writer.rs +793 -0
- pdfluent-1.0.0b17.post4/pdf-engine/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-engine/Cargo.toml +111 -0
- pdfluent-1.0.0b17.post4/pdf-engine/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-engine/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/batch_extract.rs +27 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/chunk_dump.rs +46 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/logical_compare.rs +63 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/m3b_verify.rs +418 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/ocr_real_accuracy.rs +178 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/ocr_single_image.rs +47 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/pdfium_compare.rs +110 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/render_bench.rs +114 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/render_ours.rs +50 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/render_quality_diff.rs +102 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/structtree_measure.rs +167 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/structtree_spike.rs +182 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/structtree_table.rs +206 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/structured_demo.rs +78 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/table_audit.rs +66 -0
- pdfluent-1.0.0b17.post4/pdf-engine/examples/table_dump.rs +29 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/api.rs +374 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/api_error.rs +460 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/batch.rs +385 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/color.rs +73 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/document.rs +1790 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/error.rs +129 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/geometry.rs +201 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/lib.rs +107 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/limits.rs +422 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/ocr.rs +2739 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/render.rs +817 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/text.rs +3297 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/text_info.rs +153 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/thumbnail.rs +14 -0
- pdfluent-1.0.0b17.post4/pdf-engine/src/xfa.rs +37 -0
- pdfluent-1.0.0b17.post4/pdf-engine/tests/cloud_ocr_env.rs +200 -0
- pdfluent-1.0.0b17.post4/pdf-engine/tests/fixtures/text_span_info.sample.json +20 -0
- pdfluent-1.0.0b17.post4/pdf-engine/tests/golf1_extraction.rs +292 -0
- pdfluent-1.0.0b17.post4/pdf-engine/tests/text_span_info_contract.rs +152 -0
- pdfluent-1.0.0b17.post4/pdf-extract/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-extract/Cargo.toml +31 -0
- pdfluent-1.0.0b17.post4/pdf-extract/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-extract/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-extract/src/error.rs +53 -0
- pdfluent-1.0.0b17.post4/pdf-extract/src/images.rs +840 -0
- pdfluent-1.0.0b17.post4/pdf-extract/src/lib.rs +63 -0
- pdfluent-1.0.0b17.post4/pdf-extract/src/search.rs +404 -0
- pdfluent-1.0.0b17.post4/pdf-extract/src/text.rs +4060 -0
- pdfluent-1.0.0b17.post4/pdf-font/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-font/Cargo.toml +25 -0
- pdfluent-1.0.0b17.post4/pdf-font/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/pdf-font/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/pdf-font/README.md +38 -0
- pdfluent-1.0.0b17.post4/pdf-font/assets/LICENSE.txt +28 -0
- pdfluent-1.0.0b17.post4/pdf-font/assets/README.md +2 -0
- pdfluent-1.0.0b17.post4/pdf-font/assets/cmaps.brotli +0 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/cmap/bcmap/embedded.rs +136 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/cmap/bcmap/huffman.rs +181 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/cmap/bcmap/mod.rs +416 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/cmap/bcmap/reader.rs +123 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/cmap/mod.rs +1581 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/cmap/parse.rs +382 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/argstack.rs +81 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/charset.rs +246 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/charstring.rs +614 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/dict.rs +310 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/encoding.rs +191 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/index.rs +254 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/mod.rs +1151 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/parser.rs +595 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/cff/std_names.rs +393 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/mod.rs +234 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/charstring.rs +413 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/charstring_parser.rs +315 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/decrypt.rs +137 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/mod.rs +836 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/operator.rs +31 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/standard.rs +153 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/type1/stream.rs +56 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/font/util.rs +49 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/lib.rs +17 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/array.rs +127 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/error.rs +30 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/mod.rs +173 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/name.rs +191 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/number.rs +182 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/object.rs +193 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/reader.rs +136 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/string/ascii_85.rs +90 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/string/ascii_hex.rs +59 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/string/literal.rs +86 -0
- pdfluent-1.0.0b17.post4/pdf-font/src/postscript/string.rs +288 -0
- pdfluent-1.0.0b17.post4/pdf-forms/CHANGELOG.md +61 -0
- pdfluent-1.0.0b17.post4/pdf-forms/Cargo.toml +33 -0
- pdfluent-1.0.0b17.post4/pdf-forms/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-forms/README.md +151 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/actions.rs +138 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/appearance.rs +446 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/button.rs +278 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/choice.rs +184 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/encoding.rs +169 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/facade.rs +271 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/flags.rs +136 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/flatten.rs +937 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/lib.rs +75 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/metrics.rs +295 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/model.rs +408 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/parse.rs +335 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/text.rs +165 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/tree.rs +415 -0
- pdfluent-1.0.0b17.post4/pdf-forms/src/writeback.rs +1131 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/Cargo.toml +40 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/README.md +59 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/CGATS001Compat-v2-micro.icc +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/CGATS_LICENSE.txt +116 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitDingbats.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitFixed.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitFixedBold.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitFixedBoldItalic.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitFixedItalic.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSans.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSansBold.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSansBoldItalic.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSansItalic.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSerif.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSerifBold.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSerifBoldItalic.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSerifItalic.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/FoxitSymbol.pfb +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/LAB.icc +0 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/LICENSE_FOXIT +27 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/assets/README.md +15 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/cache.rs +406 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/color.rs +1339 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/context.rs +325 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/convert.rs +30 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/device.rs +95 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/encode.rs +508 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/blob.rs +285 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/cid.rs +789 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/glyph_names.rs +8119 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/mac_expert.rs +174 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/mac_os_roman.rs +48 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/mac_roman.rs +432 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/metrics.rs +4215 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/mod.rs +9 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/standard.rs +157 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/symbol.rs +197 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/win_ansi.rs +230 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/generated/zapf_dings.rs +210 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/glyph_simulator.rs +53 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/mod.rs +989 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/outline.rs +228 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/standard_font.rs +975 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/true_type.rs +619 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/type1.rs +614 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/font/type3.rs +313 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/function/mod.rs +112 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/function/type0.rs +408 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/function/type2.rs +148 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/function/type3.rs +135 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/function/type4.rs +913 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/interpret/mod.rs +1158 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/interpret/path.rs +163 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/interpret/state.rs +444 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/interpret/text.rs +189 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/lib.rs +59 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/ocg.rs +170 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/pattern.rs +364 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/shading.rs +1064 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/soft_mask.rs +183 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/types.rs +353 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/util.rs +245 -0
- pdfluent-1.0.0b17.post4/pdf-interpret/src/x_object.rs +917 -0
- pdfluent-1.0.0b17.post4/pdf-manip/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-manip/Cargo.toml +54 -0
- pdfluent-1.0.0b17.post4/pdf-manip/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-manip/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/check_pdfa_compliance.rs +27 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/convert_pdfa.rs +231 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_failing_widths.rs +337 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_gen131_trace.rs +101 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_gen181_test.rs +38 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_gen_widths.rs +126 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_pdfa.rs +361 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_pdfa_one.rs +62 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/debug_widths.rs +237 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/diag_text_replace.rs +83 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/inspect_cidset.rs +153 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/pdfa_encoding_trace.rs +208 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/pdfa_space_probe.rs +85 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/pdfa_width_trace.rs +190 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/test_w160_verapdf.rs +156 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/timing_profile3.rs +49 -0
- pdfluent-1.0.0b17.post4/pdf-manip/examples/trace_tekton_widths.rs +133 -0
- pdfluent-1.0.0b17.post4/pdf-manip/resources/cmap/GB-EUC-H +171 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/NOTDEF_FIXES_LOG.md +69 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/bookmarks.rs +736 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/cff_append.rs +1168 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/content_editor.rs +1102 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/downsample.rs +624 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/encoding_utils.rs +503 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/encrypt.rs +452 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/error.rs +133 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/flate_decode.rs +78 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/font_subset.rs +423 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/header_footer.rs +527 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/image_insert.rs +788 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/lib.rs +96 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/optimize.rs +384 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pages.rs +420 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa.rs +640 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_cleanup.rs +6325 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_colorspace.rs +3233 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_fixups.rs +11137 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_fonts.rs +24262 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_repair.rs +1142 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_structure.rs +222 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfa_xmp.rs +1074 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/pdfua.rs +1087 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_edit/apply.rs +718 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_edit/mod.rs +1672 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_edit/scan.rs +437 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_edit/signatures.rs +132 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_edit/token.rs +548 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_replace.rs +834 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_run.rs +1365 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/text_style.rs +1208 -0
- pdfluent-1.0.0b17.post4/pdf-manip/src/watermark.rs +827 -0
- pdfluent-1.0.0b17.post4/pdf-manip/tests/debug_convert.rs +7732 -0
- pdfluent-1.0.0b17.post4/pdf-manip/tests/text_edit_contract.rs +1121 -0
- pdfluent-1.0.0b17.post4/pdf-manip/tests/text_replace_characterization.rs +647 -0
- pdfluent-1.0.0b17.post4/pdf-python/.gitignore +3 -0
- pdfluent-1.0.0b17.post4/pdf-python/Cargo.lock +3143 -0
- pdfluent-1.0.0b17.post4/pdf-python/Cargo.toml +30 -0
- pdfluent-1.0.0b17.post4/pdf-python/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-python/README.md +323 -0
- pdfluent-1.0.0b17.post4/pdf-python/examples/demo.py +190 -0
- pdfluent-1.0.0b17.post4/pdf-python/src/lib.rs +2070 -0
- pdfluent-1.0.0b17.post4/pdf-python/src/text_edit.rs +321 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/conftest.py +1 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/test_license.py +470 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/test_license_signed_payload.py +299 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/test_multiselect.py +64 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/test_pdfluent_typing.py +442 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/test_signatures.py +197 -0
- pdfluent-1.0.0b17.post4/pdf-python/tests/test_smoke.py +365 -0
- pdfluent-1.0.0b17.post4/pdf-redact/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-redact/Cargo.toml +29 -0
- pdfluent-1.0.0b17.post4/pdf-redact/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-redact/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-redact/src/error.rs +74 -0
- pdfluent-1.0.0b17.post4/pdf-redact/src/lib.rs +11 -0
- pdfluent-1.0.0b17.post4/pdf-redact/src/redact.rs +3260 -0
- pdfluent-1.0.0b17.post4/pdf-redact/src/search_redact.rs +1545 -0
- pdfluent-1.0.0b17.post4/pdf-redact/src/tounicode.rs +1066 -0
- pdfluent-1.0.0b17.post4/pdf-redact/tests/annotations_and_xmp.rs +206 -0
- pdfluent-1.0.0b17.post4/pdf-redact/tests/debug_redact.rs +294 -0
- pdfluent-1.0.0b17.post4/pdf-redact/tests/redact_image.rs +131 -0
- pdfluent-1.0.0b17.post4/pdf-redact/tests/regression_redact.rs +364 -0
- pdfluent-1.0.0b17.post4/pdf-redact/tests/tounicode_stub_smoke.rs +219 -0
- pdfluent-1.0.0b17.post4/pdf-render/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-render/Cargo.toml +39 -0
- pdfluent-1.0.0b17.post4/pdf-render/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/pdf-render/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/pdf-render/README.md +44 -0
- pdfluent-1.0.0b17.post4/pdf-render/src/lib.rs +485 -0
- pdfluent-1.0.0b17.post4/pdf-render/src/renderer.rs +1098 -0
- pdfluent-1.0.0b17.post4/pdf-sign/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-sign/Cargo.toml +42 -0
- pdfluent-1.0.0b17.post4/pdf-sign/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-sign/README.md +40 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/appearance.rs +135 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/byte_range.rs +142 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/chain.rs +367 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/cms.rs +490 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/cms_builder.rs +575 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/crypto.rs +394 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/docmdp.rs +212 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/lib.rs +267 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/ltv.rs +264 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/sig_dict.rs +135 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/sign.rs +1209 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/signer.rs +475 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/string_util.rs +45 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/tsa.rs +901 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/types.rs +111 -0
- pdfluent-1.0.0b17.post4/pdf-sign/src/x509.rs +341 -0
- pdfluent-1.0.0b17.post4/pdf-sign/tests/fixtures/test-ec-p256.p12 +0 -0
- pdfluent-1.0.0b17.post4/pdf-sign/tests/fixtures/test-rsa.p12 +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/Cargo.toml +24 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/LICENSE-FOXIT +27 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/README.md +53 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitDingbats.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitFixed.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitFixedBold.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitFixedBoldItalic.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitFixedItalic.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSans.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSansBold.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSansBoldItalic.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSansItalic.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSerif.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSerifBold.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSerifBoldItalic.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSerifItalic.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/assets/FoxitSymbol.cff +0 -0
- pdfluent-1.0.0b17.post4/pdf-standard-fonts/src/lib.rs +799 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/Cargo.toml +37 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/LICENSE-APACHE +201 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/LICENSE-MIT +19 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/README.md +79 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/bit_reader.rs +607 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/byte_reader.rs +222 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/content/gen_ops.py +222 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/content/mod.rs +715 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/content/ops.rs +200 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/content/ops_generated.rs +528 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/aes.rs +723 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/md5.rs +122 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/mod.rs +671 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/rc4.rs +125 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/sha256.rs +151 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/sha384.rs +51 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/crypto/sha512.rs +237 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/data.rs +312 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/ascii_85.rs +95 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/ascii_hex.rs +103 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/ccitt.rs +117 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/dct.rs +208 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/jbig2.rs +49 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/jpx.rs +207 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/lzw_flate.rs +1125 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/mod.rs +134 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/filter/run_length.rs +44 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/leniency.rs +263 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/lib.rs +101 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/math.rs +61 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/metadata.rs +43 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/array.rs +406 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/bool.rs +61 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/date.rs +268 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/dict.rs +1053 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/indirect.rs +68 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/mod.rs +389 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/name.rs +365 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/null.rs +53 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/number.rs +533 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/rect.rs +83 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/ref.rs +187 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/stream.rs +553 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/string.rs +494 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/object/tuple.rs +174 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/page.rs +678 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/pdf.rs +375 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/reader.rs +290 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/sync.rs +108 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/trivia.rs +49 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/util.rs +112 -0
- pdfluent-1.0.0b17.post4/pdf-syntax/src/xref.rs +1403 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/Cargo.toml +51 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/README.md +42 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/appearance_bridge.rs +638 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/classify.rs +172 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/datasets_writeback.rs +816 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/dynamic.rs +2773 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/encodings/glyphnames.rs +4501 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/encodings/mappings.rs +1820 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/error.rs +167 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/extract.rs +735 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/flatten.rs +7106 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/flatten_trace.rs +584 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/font_bridge.rs +2030 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/image_bridge.rs +350 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/javascript_policy.rs +752 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/js_runtime/host.rs +2975 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/js_runtime/mod.rs +788 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/js_runtime/null.rs +99 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/js_runtime/regex_guard.rs +781 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/js_runtime/rquickjs_backend.rs +4598 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/lib.rs +77 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/merger.rs +4320 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/paint_bridge.rs +1018 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/render_bridge.rs +4893 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/session.rs +1253 -0
- pdfluent-1.0.0b17.post4/pdf-xfa/src/template_parser.rs +2806 -0
- pdfluent-1.0.0b17.post4/pdfluent/CHANGELOG.md +304 -0
- pdfluent-1.0.0b17.post4/pdfluent/Cargo.toml +117 -0
- pdfluent-1.0.0b17.post4/pdfluent/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/pdfluent/README.md +88 -0
- pdfluent-1.0.0b17.post4/pdfluent/benches/facade.rs +109 -0
- pdfluent-1.0.0b17.post4/pdfluent/examples/xfa_fill.rs +72 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/async_io.rs +30 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/capability.rs +151 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/compliance.rs +91 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/decoration.rs +69 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/diagnostics.rs +417 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/document.rs +3255 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/encrypt.rs +229 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/error.rs +738 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/form.rs +338 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/lib.rs +120 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/license.rs +464 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/merger.rs +120 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/metadata.rs +271 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/page_labels.rs +273 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/parity.rs +272 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/prelude.rs +27 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/redact.rs +36 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/signer.rs +249 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/structure.rs +277 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/tagged.rs +143 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/tier.rs +98 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/watermark.rs +112 -0
- pdfluent-1.0.0b17.post4/pdfluent/src/xfa.rs +238 -0
- pdfluent-1.0.0b17.post4/pyproject.toml +55 -0
- pdfluent-1.0.0b17.post4/python/pdfluent/__init__.py +326 -0
- pdfluent-1.0.0b17.post4/python/pdfluent/__init__.pyi +1031 -0
- pdfluent-1.0.0b17.post4/python/pdfluent/_native.pyi +560 -0
- pdfluent-1.0.0b17.post4/python/pdfluent/py.typed +0 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/Cargo.toml +14 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/README.md +32 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/src/data_dom.rs +886 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/src/error.rs +56 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/src/lib.rs +13 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/src/som.rs +485 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/src/template_dom.rs +8 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/src/xfa_dom.rs +21 -0
- pdfluent-1.0.0b17.post4/xfa-dom-resolver/tests/edge_cases.rs +163 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/Cargo.toml +16 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/README.md +13 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/src/error.rs +27 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/src/field_store.rs +74 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/src/lib.rs +20 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/src/runtime.rs +501 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/src/value.rs +64 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/tests/cancel_mid_flight.rs +98 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/tests/error_propagation.rs +97 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/tests/field_read_write.rs +98 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/tests/sandbox_isolation.rs +132 -0
- pdfluent-1.0.0b17.post4/xfa-js-sandboxed/tests/simple_calculate.rs +62 -0
- pdfluent-1.0.0b17.post4/xfa-json/Cargo.toml +16 -0
- pdfluent-1.0.0b17.post4/xfa-json/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/xfa-json/README.md +32 -0
- pdfluent-1.0.0b17.post4/xfa-json/src/coerce.rs +104 -0
- pdfluent-1.0.0b17.post4/xfa-json/src/export.rs +388 -0
- pdfluent-1.0.0b17.post4/xfa-json/src/import.rs +471 -0
- pdfluent-1.0.0b17.post4/xfa-json/src/lib.rs +23 -0
- pdfluent-1.0.0b17.post4/xfa-json/src/schema.rs +267 -0
- pdfluent-1.0.0b17.post4/xfa-json/src/types.rs +121 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/Cargo.toml +19 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/README.md +32 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/error.rs +26 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/form.rs +807 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/layout.rs +8729 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/layout_patch.py +254 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/layout_patch_override.py +113 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/lib.rs +15 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/scripting.rs +452 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/text.rs +670 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/src/types.rs +485 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/border_width.rs +141 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/js_calculate.rs +165 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/line_height.rs +112 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/overflow_leader_trailer.rs +339 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/overflow_leader_trailer_per_subform.rs +496 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/pagination_edge_cases.rs +346 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/paragraph_margins.rs +115 -0
- pdfluent-1.0.0b17.post4/xfa-layout-engine/tests/text_indent.rs +107 -0
- pdfluent-1.0.0b17.post4/xfa-license/CHANGELOG.md +7 -0
- pdfluent-1.0.0b17.post4/xfa-license/Cargo.toml +22 -0
- pdfluent-1.0.0b17.post4/xfa-license/LICENSE +249 -0
- pdfluent-1.0.0b17.post4/xfa-license/README.md +34 -0
- pdfluent-1.0.0b17.post4/xfa-license/src/claims.rs +338 -0
- pdfluent-1.0.0b17.post4/xfa-license/src/error.rs +58 -0
- pdfluent-1.0.0b17.post4/xfa-license/src/lib.rs +341 -0
- pdfluent-1.0.0b17.post4/xfa-license/src/metering.rs +251 -0
- pdfluent-1.0.0b17.post4/xfa-license/src/token.rs +184 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
PDFluent Commercial License
|
|
2
|
+
Version 1.0
|
|
3
|
+
Effective: 2026-05-02
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2026 Innovation Trigger BV (operating as PDFluent).
|
|
6
|
+
All rights reserved.
|
|
7
|
+
|
|
8
|
+
IMPORTANT — READ CAREFULLY. This is a legal agreement between you ("Licensee")
|
|
9
|
+
and Innovation Trigger BV, a private limited company organized under the laws
|
|
10
|
+
of the Netherlands and operating under the trade name "PDFluent" ("PDFluent",
|
|
11
|
+
"we", "us"). By installing, copying, downloading, or otherwise using the
|
|
12
|
+
Software, you agree to be bound by the terms of this License. If you do not
|
|
13
|
+
agree, do not install or use the Software.
|
|
14
|
+
|
|
15
|
+
This License governs the use of all Rust crates published by PDFluent that
|
|
16
|
+
reference this LICENSE file in their Cargo manifest. PDFluent also publishes
|
|
17
|
+
separate crates under permissive open-source licenses (MIT or Apache-2.0);
|
|
18
|
+
those crates are NOT governed by this License and may be used under their
|
|
19
|
+
respective open-source terms. See the NOTICE file for the list of crates
|
|
20
|
+
covered by each license.
|
|
21
|
+
|
|
22
|
+
Note: this License is separate from the license for the PDFluent desktop
|
|
23
|
+
editor application. A license to use the PDFluent editor, including a free
|
|
24
|
+
one, does not grant any rights under this License. If you are embedding,
|
|
25
|
+
linking against, or programmatically calling the Software described below,
|
|
26
|
+
this License applies regardless of whether you also use the editor. See
|
|
27
|
+
https://pdfluent.com/sdk/pricing for SDK licensing options.
|
|
28
|
+
|
|
29
|
+
----------------------------------------------------------------------------
|
|
30
|
+
|
|
31
|
+
1. DEFINITIONS
|
|
32
|
+
|
|
33
|
+
"Software" means the source code, compiled object code, binary artefacts,
|
|
34
|
+
and accompanying documentation of the PDFluent crates that reference this
|
|
35
|
+
LICENSE file.
|
|
36
|
+
|
|
37
|
+
"Production Use" means any use of the Software in connection with the
|
|
38
|
+
operation of a business or for the benefit of a third party, including
|
|
39
|
+
without limitation: (a) processing data of customers, clients, or other
|
|
40
|
+
third parties; (b) integration into a commercial product, service, or
|
|
41
|
+
internal business application; (c) deployment in a production environment.
|
|
42
|
+
|
|
43
|
+
"Evaluation Use" means use of the Software solely for the purpose of
|
|
44
|
+
evaluating its suitability for Production Use, including in development,
|
|
45
|
+
testing, demonstration, and non-public staging environments. Evaluation
|
|
46
|
+
Use does not include any form of Production Use.
|
|
47
|
+
|
|
48
|
+
"Valid License" means a current and active license entitlement issued by
|
|
49
|
+
PDFluent or an authorized reseller, identified by an Ed25519-signed
|
|
50
|
+
license key file or by other written commercial terms agreed with
|
|
51
|
+
PDFluent.
|
|
52
|
+
|
|
53
|
+
"Authorized Use" means the scope of Production Use granted under a Valid
|
|
54
|
+
License, including the number of developers, locations, products, and
|
|
55
|
+
deployment configurations described in the commercial terms applicable to
|
|
56
|
+
that Valid License.
|
|
57
|
+
|
|
58
|
+
----------------------------------------------------------------------------
|
|
59
|
+
|
|
60
|
+
2. EVALUATION GRANT
|
|
61
|
+
|
|
62
|
+
Subject to compliance with this License, PDFluent grants Licensee a
|
|
63
|
+
non-exclusive, non-transferable, worldwide, royalty-free license to:
|
|
64
|
+
|
|
65
|
+
(a) install and use the Software for Evaluation Use; and
|
|
66
|
+
|
|
67
|
+
(b) make a reasonable number of internal copies of the Software for the
|
|
68
|
+
sole purpose of supporting Evaluation Use.
|
|
69
|
+
|
|
70
|
+
The Software, when used without a Valid License, may produce output that
|
|
71
|
+
contains identifying markers indicating that the output was generated by
|
|
72
|
+
an unlicensed copy of the Software (including but not limited to a
|
|
73
|
+
"Producer" string in PDF metadata and a one-time warning emitted to
|
|
74
|
+
standard error). Licensee shall not remove, modify, suppress, or
|
|
75
|
+
circumvent these markers, nor any license-enforcement mechanism within
|
|
76
|
+
the Software.
|
|
77
|
+
|
|
78
|
+
----------------------------------------------------------------------------
|
|
79
|
+
|
|
80
|
+
3. PRODUCTION GRANT
|
|
81
|
+
|
|
82
|
+
Production Use of the Software is permitted ONLY when Licensee holds a
|
|
83
|
+
Valid License covering the intended use. The scope of Production Use
|
|
84
|
+
permitted is determined by the Valid License and by the commercial terms
|
|
85
|
+
referenced therein. The current commercial terms, including pricing,
|
|
86
|
+
tiers, add-ons, and definitions of permitted use, are published at:
|
|
87
|
+
|
|
88
|
+
https://pdfluent.com/terms
|
|
89
|
+
https://pdfluent.com/pricing
|
|
90
|
+
|
|
91
|
+
Production Use exceeding the Authorized Use of the applicable Valid
|
|
92
|
+
License is a material breach of this License.
|
|
93
|
+
|
|
94
|
+
----------------------------------------------------------------------------
|
|
95
|
+
|
|
96
|
+
4. RESTRICTIONS
|
|
97
|
+
|
|
98
|
+
Except as expressly permitted by this License or by a separately
|
|
99
|
+
negotiated written agreement with PDFluent, Licensee shall not:
|
|
100
|
+
|
|
101
|
+
(a) use the Software in Production Use without a Valid License;
|
|
102
|
+
|
|
103
|
+
(b) remove, disable, alter, or circumvent any license-enforcement,
|
|
104
|
+
watermarking, telemetry, or attribution mechanism contained in the
|
|
105
|
+
Software;
|
|
106
|
+
|
|
107
|
+
(c) redistribute, publish, sell, sublicense, lease, rent, or otherwise
|
|
108
|
+
make the Software available to any third party, except under a
|
|
109
|
+
separately purchased OEM Redistribution add-on as described in the
|
|
110
|
+
commercial terms;
|
|
111
|
+
|
|
112
|
+
(d) reverse engineer, decompile, or disassemble the Software, except to
|
|
113
|
+
the limited extent that such activity is expressly permitted by
|
|
114
|
+
applicable law notwithstanding this restriction;
|
|
115
|
+
|
|
116
|
+
(e) modify the Software with the intent of, or in a manner that has the
|
|
117
|
+
effect of, evading any restriction in this License;
|
|
118
|
+
|
|
119
|
+
(f) remove, obscure, or alter any copyright, trademark, attribution, or
|
|
120
|
+
other proprietary notices contained in the Software or its
|
|
121
|
+
documentation; or
|
|
122
|
+
|
|
123
|
+
(g) redistribute, sublicense, expose, or offer the Software as a
|
|
124
|
+
standalone SDK, library, API, platform, service, or substantially
|
|
125
|
+
similar substitute for PDFluent, except as expressly permitted under
|
|
126
|
+
an OEM Redistribution add-on.
|
|
127
|
+
|
|
128
|
+
For clarity, restriction (g) is intended to prevent re-packaging or
|
|
129
|
+
re-offering the Software (in whole or in substantial part) as a competing
|
|
130
|
+
PDF SDK or service. It does not restrict Licensee from using the Software
|
|
131
|
+
inside its own application, product, or service that delivers
|
|
132
|
+
functionality beyond what the Software itself provides.
|
|
133
|
+
|
|
134
|
+
----------------------------------------------------------------------------
|
|
135
|
+
|
|
136
|
+
5. RESERVATION OF RIGHTS
|
|
137
|
+
|
|
138
|
+
The Software is licensed, not sold. Title, ownership, and all
|
|
139
|
+
intellectual property rights in and to the Software remain at all times
|
|
140
|
+
with PDFluent and its licensors. All rights not expressly granted under
|
|
141
|
+
this License are reserved by PDFluent.
|
|
142
|
+
|
|
143
|
+
Feedback, suggestions, or improvements that Licensee voluntarily provides
|
|
144
|
+
to PDFluent regarding the Software may be used by PDFluent without
|
|
145
|
+
restriction, without obligation of confidentiality, and without
|
|
146
|
+
compensation to Licensee.
|
|
147
|
+
|
|
148
|
+
----------------------------------------------------------------------------
|
|
149
|
+
|
|
150
|
+
6. THIRD-PARTY COMPONENTS
|
|
151
|
+
|
|
152
|
+
The Software may include or depend upon third-party components,
|
|
153
|
+
including upstream open-source crates from which certain PDFluent crates
|
|
154
|
+
are derived. Such components remain subject to their respective licenses,
|
|
155
|
+
which are reproduced in the THIRD_PARTY_LICENSES.txt file accompanying
|
|
156
|
+
the Software. Nothing in this License is intended to limit or override
|
|
157
|
+
any rights granted under those third-party licenses with respect to those
|
|
158
|
+
third-party components.
|
|
159
|
+
|
|
160
|
+
----------------------------------------------------------------------------
|
|
161
|
+
|
|
162
|
+
7. NO WARRANTY
|
|
163
|
+
|
|
164
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
165
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
166
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND
|
|
167
|
+
NON-INFRINGEMENT. PDFLUENT DOES NOT WARRANT THAT THE SOFTWARE WILL MEET
|
|
168
|
+
LICENSEE'S REQUIREMENTS, OPERATE WITHOUT INTERRUPTION, OR BE FREE OF
|
|
169
|
+
ERRORS OR DEFECTS.
|
|
170
|
+
|
|
171
|
+
----------------------------------------------------------------------------
|
|
172
|
+
|
|
173
|
+
8. LIMITATION OF LIABILITY
|
|
174
|
+
|
|
175
|
+
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL
|
|
176
|
+
PDFLUENT OR ITS CONTRIBUTORS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
|
|
177
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED
|
|
178
|
+
TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE, DATA, OR
|
|
179
|
+
PROFITS, OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
180
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
181
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
|
|
182
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
183
|
+
|
|
184
|
+
PDFLUENT'S TOTAL CUMULATIVE LIABILITY UNDER OR IN CONNECTION WITH THIS
|
|
185
|
+
LICENSE SHALL NOT EXCEED THE GREATER OF (i) THE FEES PAID BY LICENSEE TO
|
|
186
|
+
PDFLUENT UNDER THE APPLICABLE VALID LICENSE IN THE TWELVE (12) MONTHS
|
|
187
|
+
IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO LIABILITY, OR (ii) ONE
|
|
188
|
+
HUNDRED EUROS (€100).
|
|
189
|
+
|
|
190
|
+
----------------------------------------------------------------------------
|
|
191
|
+
|
|
192
|
+
9. TERMINATION
|
|
193
|
+
|
|
194
|
+
This License is effective until terminated. This License terminates
|
|
195
|
+
automatically and without notice if Licensee fails to comply with any
|
|
196
|
+
term of this License. Upon termination, Licensee shall cease all use of
|
|
197
|
+
the Software, destroy all copies in its possession or control, and, on
|
|
198
|
+
request, certify such destruction in writing to PDFluent.
|
|
199
|
+
|
|
200
|
+
Sections 4 (Restrictions), 5 (Reservation of Rights), 7 (No Warranty),
|
|
201
|
+
8 (Limitation of Liability), 10 (Governing Law), and 11 (Entire
|
|
202
|
+
Agreement) survive any termination of this License.
|
|
203
|
+
|
|
204
|
+
----------------------------------------------------------------------------
|
|
205
|
+
|
|
206
|
+
10. GOVERNING LAW AND JURISDICTION
|
|
207
|
+
|
|
208
|
+
This License shall be governed by and construed in accordance with the
|
|
209
|
+
laws of the Netherlands, excluding its conflict-of-laws provisions and
|
|
210
|
+
the United Nations Convention on Contracts for the International Sale
|
|
211
|
+
of Goods. The courts of Amsterdam, the Netherlands, shall have
|
|
212
|
+
exclusive jurisdiction over any dispute arising from or in connection
|
|
213
|
+
with this License, except that PDFluent may seek injunctive relief in
|
|
214
|
+
any court of competent jurisdiction to protect its intellectual
|
|
215
|
+
property rights.
|
|
216
|
+
|
|
217
|
+
----------------------------------------------------------------------------
|
|
218
|
+
|
|
219
|
+
11. ENTIRE AGREEMENT
|
|
220
|
+
|
|
221
|
+
This License, together with any Valid License terms and any commercial
|
|
222
|
+
terms expressly incorporated by reference, constitutes the entire
|
|
223
|
+
agreement between Licensee and PDFluent with respect to the Software
|
|
224
|
+
and supersedes all prior or contemporaneous communications,
|
|
225
|
+
representations, or agreements, whether oral or written. No
|
|
226
|
+
modification or amendment of this License shall be effective unless in
|
|
227
|
+
writing and signed by an authorized representative of PDFluent.
|
|
228
|
+
|
|
229
|
+
----------------------------------------------------------------------------
|
|
230
|
+
|
|
231
|
+
CONTACT
|
|
232
|
+
|
|
233
|
+
Innovation Trigger BV
|
|
234
|
+
Operating as PDFluent
|
|
235
|
+
Email: hello@pdfluent.com
|
|
236
|
+
Web: https://pdfluent.com
|
|
237
|
+
|
|
238
|
+
For commercial terms, pricing, evaluation policies, trial keys, and OEM
|
|
239
|
+
licensing options, visit https://pdfluent.com/pricing.
|
|
240
|
+
|
|
241
|
+
----------------------------------------------------------------------------
|
|
242
|
+
|
|
243
|
+
NOTE ON HISTORICAL VERSIONS
|
|
244
|
+
|
|
245
|
+
Versions of PDFluent crates published to crates.io prior to 2026-05-02
|
|
246
|
+
under the MIT license remain available under the MIT license. This License
|
|
247
|
+
applies to versions published on or after that date that reference this
|
|
248
|
+
LICENSE file in their Cargo manifest. See CHANGELOG.md for the version
|
|
249
|
+
boundary.
|
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pdfluent
|
|
3
|
+
Version: 1.0.0b17.post4
|
|
4
|
+
Classifier: Development Status :: 4 - Beta
|
|
5
|
+
Classifier: Intended Audience :: Developers
|
|
6
|
+
Classifier: License :: Other/Proprietary License
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Classifier: Programming Language :: Rust
|
|
9
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
+
Classifier: Topic :: Multimedia :: Graphics
|
|
19
|
+
Classifier: Topic :: Office/Business
|
|
20
|
+
Classifier: Topic :: Text Processing
|
|
21
|
+
Requires-Dist: numpy ; extra == 'numpy'
|
|
22
|
+
Requires-Dist: pillow ; extra == 'pillow'
|
|
23
|
+
Requires-Dist: pytest>=7.0 ; extra == 'test'
|
|
24
|
+
Provides-Extra: numpy
|
|
25
|
+
Provides-Extra: pillow
|
|
26
|
+
Provides-Extra: test
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Summary: Enterprise PDF SDK — find and replace PDF text while preserving fonts and layout, plus render, extract, annotate, sign, and validate PDFs. Pure Rust, zero system dependencies.
|
|
29
|
+
Keywords: pdf-text-replace,find-and-replace,edit-pdf-text,pdf,xfa,acroform,render,text-extraction,forms,pdf-a,annotations,redaction,rust,pdfluent
|
|
30
|
+
Author-email: Innovation Trigger BV <team@pdfluent.com>
|
|
31
|
+
License: PDFluent Commercial License
|
|
32
|
+
Requires-Python: >=3.8
|
|
33
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
34
|
+
Project-URL: Bug Tracker, https://pdfluent.com/support
|
|
35
|
+
Project-URL: Documentation, https://pdfluent.com/docs
|
|
36
|
+
Project-URL: Homepage, https://pdfluent.com
|
|
37
|
+
Project-URL: Repository, https://github.com/pdfluent/pdfluent-sdk
|
|
38
|
+
|
|
39
|
+
# pdfluent
|
|
40
|
+
|
|
41
|
+
**Enterprise PDF SDK for Python — built on a pure-Rust stack, zero system dependencies.**
|
|
42
|
+
|
|
43
|
+
Render pages, extract text, fill forms, annotate, redact, encrypt, merge, and validate PDF/A — all from a single `pip install`.
|
|
44
|
+
|
|
45
|
+
## Installation
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install pdfluent
|
|
49
|
+
|
|
50
|
+
# Optional extras
|
|
51
|
+
pip install pdfluent[pillow] # PIL Image support
|
|
52
|
+
pip install pdfluent[numpy] # NumPy array support
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> Requires Python ≥ 3.8. Pre-built wheels for Linux (x86_64, aarch64), macOS (x86_64, arm64), and Windows (x86_64).
|
|
56
|
+
|
|
57
|
+
## Quick Start
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
from pdfluent import Document
|
|
61
|
+
|
|
62
|
+
# Open, inspect, render
|
|
63
|
+
with Document("invoice.pdf") as doc:
|
|
64
|
+
print(f"{doc.page_count} pages — {doc.metadata.title}")
|
|
65
|
+
|
|
66
|
+
img = doc[0].render(dpi=150)
|
|
67
|
+
img.save("page_0.png") # requires Pillow
|
|
68
|
+
|
|
69
|
+
# Extract text
|
|
70
|
+
doc = Document("report.pdf")
|
|
71
|
+
for page in doc:
|
|
72
|
+
print(page.extract_text())
|
|
73
|
+
|
|
74
|
+
# Fill a form field and save
|
|
75
|
+
doc = Document("form.pdf")
|
|
76
|
+
doc.set_form_field("Name", "Jane Doe")
|
|
77
|
+
# Multi-select list box: select several options at once
|
|
78
|
+
doc.set_multi_select("Languages", ["EN", "NL"])
|
|
79
|
+
doc.save("form_filled.pdf")
|
|
80
|
+
|
|
81
|
+
# Search-and-redact
|
|
82
|
+
doc = Document("contract.pdf")
|
|
83
|
+
report = doc.redact_text("Confidential")
|
|
84
|
+
print(f"Redacted {report.areas_redacted} areas on {report.pages_affected} pages")
|
|
85
|
+
doc.save("contract_redacted.pdf")
|
|
86
|
+
|
|
87
|
+
# PDF/A validation
|
|
88
|
+
from pdfluent import validate_pdfa
|
|
89
|
+
|
|
90
|
+
report = validate_pdfa("archive.pdf")
|
|
91
|
+
if report.is_compliant:
|
|
92
|
+
print(f"✓ {report.pdfa_level} compliant")
|
|
93
|
+
else:
|
|
94
|
+
for issue in report.issues:
|
|
95
|
+
print(f"[{issue.severity}] {issue.rule}: {issue.message}")
|
|
96
|
+
|
|
97
|
+
# Merge PDFs
|
|
98
|
+
from pdfluent import merge_pdfs
|
|
99
|
+
merge_pdfs(["a.pdf", "b.pdf", "c.pdf"], "merged.pdf")
|
|
100
|
+
|
|
101
|
+
# Encrypt / decrypt
|
|
102
|
+
doc = Document("sensitive.pdf")
|
|
103
|
+
doc.encrypt("sensitive_enc.pdf", password="s3cr3t")
|
|
104
|
+
|
|
105
|
+
from pdfluent import decrypt_pdf
|
|
106
|
+
decrypt_pdf("sensitive_enc.pdf", "sensitive_dec.pdf", password="s3cr3t")
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Features
|
|
110
|
+
|
|
111
|
+
| Feature | Description |
|
|
112
|
+
|---|---|
|
|
113
|
+
| **Render** | Pages to RGBA pixels, PIL Images, or NumPy arrays at any DPI |
|
|
114
|
+
| **Text extraction** | Plain text or structured `TextBlock`/`TextSpan` with position |
|
|
115
|
+
| **Text search** | Find pages containing a query string |
|
|
116
|
+
| **Forms (AcroForm)** | Read and fill text, checkbox, radio, combo/list fields; **multi-select list boxes** (`set_multi_select`); hierarchical names; appearance-stream regeneration |
|
|
117
|
+
| **Annotations** | Read existing annotations; add highlights and free-text notes |
|
|
118
|
+
| **Redaction** | Search-and-redact: black-box all occurrences of a string |
|
|
119
|
+
| **Encryption** | AES-256 (PDF 2.0) encrypt/decrypt with user + owner passwords |
|
|
120
|
+
| **Merge / split** | Merge multiple PDFs; split into individual pages (via page slicing) |
|
|
121
|
+
| **PDF/A validation** | Validate against PDF/A-1B, 2B, 3B with issue-level reporting |
|
|
122
|
+
| **Metadata** | Read title, author, subject, keywords, creator, producer |
|
|
123
|
+
| **Bookmarks** | Traverse the document outline tree |
|
|
124
|
+
| **Thumbnails** | Fast downscaled preview images |
|
|
125
|
+
|
|
126
|
+
## API Overview
|
|
127
|
+
|
|
128
|
+
### `Document(source, password=None)`
|
|
129
|
+
|
|
130
|
+
Opens a PDF from a file path (`str`) or raw bytes.
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
doc = Document("file.pdf") # from path
|
|
134
|
+
doc = Document(open("file.pdf","rb").read()) # from bytes
|
|
135
|
+
doc = Document("encrypted.pdf", password="pw")
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Properties:** `page_count`, `metadata`, `bookmarks`
|
|
139
|
+
**Methods:** `render_all(dpi)`, `search(query)`, `extract_text(page_num)`, `save(path)`,
|
|
140
|
+
`get_form_fields()`, `set_form_field(name, value)`, `get_annotations(page)`,
|
|
141
|
+
`add_annotation(page, type, rect, content)`, `redact_text(term, page=None)`,
|
|
142
|
+
`encrypt(path, password)`, `decrypt(path, password)`
|
|
143
|
+
**Protocols:** `len(doc)`, `doc[0]`, `for page in doc`, `with Document(...) as doc`
|
|
144
|
+
|
|
145
|
+
#### AcroForm fill behaviour
|
|
146
|
+
|
|
147
|
+
`set_form_field(name, value)` supports text, checkbox, radio, and choice
|
|
148
|
+
(combo/list) fields. Hierarchical names (`"parent.child"`) are resolved
|
|
149
|
+
through `/Kids` recursion. Every call keeps `/V`, `/AS`, and `/AP` consistent
|
|
150
|
+
so the fill is visible in all PDF viewers without needing `/NeedAppearances`
|
|
151
|
+
processing.
|
|
152
|
+
|
|
153
|
+
```python
|
|
154
|
+
doc.set_form_field("Name", "Jane Doe") # text field
|
|
155
|
+
doc.set_form_field("Agree", "On") # checkbox — pass on-state name
|
|
156
|
+
doc.set_form_field("Country", "NL") # radio group — export value
|
|
157
|
+
doc.set_form_field("Category", "Urgent") # combo / list — option value
|
|
158
|
+
doc.save("form_filled.pdf")
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Read-only fields raise `PdfluentError`.
|
|
162
|
+
|
|
163
|
+
### `Page`
|
|
164
|
+
|
|
165
|
+
**Properties:** `index`, `width`, `height`, `rotation`, `geometry`
|
|
166
|
+
**Methods:** `render(dpi, width, height, background)`, `thumbnail(max_dimension)`,
|
|
167
|
+
`extract_text()`, `extract_text_blocks()`
|
|
168
|
+
|
|
169
|
+
### `RenderedImage`
|
|
170
|
+
|
|
171
|
+
**Properties:** `width`, `height`, `pixels` (raw RGBA bytes)
|
|
172
|
+
**Methods:** `to_pil()`, `to_numpy()`, `save(path)`
|
|
173
|
+
|
|
174
|
+
### `TextSpan`
|
|
175
|
+
|
|
176
|
+
Structured text with position data.
|
|
177
|
+
|
|
178
|
+
**Properties:** `text`, `x`, `y`, `font_size`
|
|
179
|
+
**G1 font-metadata (Optional):** `font_name`, `is_bold`, `is_italic`, `color`
|
|
180
|
+
|
|
181
|
+
> G1 fields return `None` in the current release. They are typed as `Optional`
|
|
182
|
+
> so downstream code handles the `None` case correctly today and will
|
|
183
|
+
> automatically receive data once the G1 extraction milestone lands.
|
|
184
|
+
|
|
185
|
+
```python
|
|
186
|
+
for block in page.extract_text_blocks():
|
|
187
|
+
for span in block.spans:
|
|
188
|
+
if span.font_name is not None:
|
|
189
|
+
print(f"{span.font_name} {'bold' if span.is_bold else ''}")
|
|
190
|
+
print(f" '{span.text}' @ ({span.x:.1f}, {span.y:.1f})")
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Module-level functions
|
|
194
|
+
|
|
195
|
+
| Function | Description |
|
|
196
|
+
|---|---|
|
|
197
|
+
| `open_pdf(path, password=None)` | Alias for `Document(path)` |
|
|
198
|
+
| `merge_pdfs(paths, output)` | Merge a list of PDFs |
|
|
199
|
+
| `validate_pdfa(path)` → `ComplianceReport` | Run PDF/A validation |
|
|
200
|
+
| `decrypt_pdf(input, output, password)` | Decrypt to a new file |
|
|
201
|
+
|
|
202
|
+
## Exception Hierarchy
|
|
203
|
+
|
|
204
|
+
Every pdfluent-specific error derives from `PdfluentError`, so a single
|
|
205
|
+
`except PdfluentError:` clause catches all library errors:
|
|
206
|
+
|
|
207
|
+
```python
|
|
208
|
+
from pdfluent import PdfluentError, PdfluentParseError, PdfluentEncryptedError
|
|
209
|
+
|
|
210
|
+
try:
|
|
211
|
+
with Document("broken.pdf") as doc:
|
|
212
|
+
doc.render_all()
|
|
213
|
+
except PdfluentParseError as exc:
|
|
214
|
+
print(f"Not a valid PDF: {exc}")
|
|
215
|
+
except PdfluentEncryptedError:
|
|
216
|
+
print("PDF is password-protected")
|
|
217
|
+
except PdfluentError as exc:
|
|
218
|
+
print(f"PDF error: {exc}")
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Full hierarchy:
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
PdfluentError — base; catch all pdfluent errors
|
|
225
|
+
├── PdfluentParseError — corrupt / non-PDF bytes
|
|
226
|
+
├── PdfluentValidationError — schema / compliance failures
|
|
227
|
+
├── PdfluentRenderError — rendering and XFA flatten failures
|
|
228
|
+
├── PdfluentEncryptedError — operation blocked by encryption
|
|
229
|
+
├── PdfluentPageRangeError — page index out of range
|
|
230
|
+
├── PdfluentIoError — file-system I/O errors
|
|
231
|
+
├── PdfluentLicenseError — invalid / expired license
|
|
232
|
+
├── PdfluentGeometryError — invalid page geometry
|
|
233
|
+
└── PdfluentLimitError — processing-limit exceeded
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Typing Support
|
|
237
|
+
|
|
238
|
+
pdfluent ships with hand-written `.pyi` stub files for IDE completion and
|
|
239
|
+
`mypy --strict` compatibility:
|
|
240
|
+
|
|
241
|
+
- `pdfluent/__init__.pyi` — full public API stubs
|
|
242
|
+
- `pdfluent/_native.pyi` — native extension stubs (for mypy without a build)
|
|
243
|
+
|
|
244
|
+
### Verifying with mypy
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
pip install mypy
|
|
248
|
+
cd crates/pdf-python
|
|
249
|
+
mypy --strict --python-path python tests/test_pdfluent_typing.py
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Example with typed annotations
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
from __future__ import annotations
|
|
256
|
+
from typing import Optional
|
|
257
|
+
from pdfluent import Document, TextSpan, PdfluentError
|
|
258
|
+
|
|
259
|
+
def get_font(span: TextSpan) -> Optional[str]:
|
|
260
|
+
"""Return the font name if available."""
|
|
261
|
+
return span.font_name # Optional[str] — mypy knows this may be None
|
|
262
|
+
|
|
263
|
+
def safe_open(path: str) -> Optional[Document]:
|
|
264
|
+
try:
|
|
265
|
+
return Document(path)
|
|
266
|
+
except PdfluentError:
|
|
267
|
+
return None
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## License Activation
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
from pdfluent import activate_license, LicenseInfo, PdfluentLicenseError
|
|
274
|
+
|
|
275
|
+
# Activate from a JSON license string or base64-encoded key
|
|
276
|
+
try:
|
|
277
|
+
info: LicenseInfo = activate_license(open("my.license").read())
|
|
278
|
+
print(f"{info.tier} license for {info.company} ({info.seats} seats)")
|
|
279
|
+
except PdfluentLicenseError as exc:
|
|
280
|
+
print(f"License error: {exc}")
|
|
281
|
+
|
|
282
|
+
# Or set the environment variable and call with empty string:
|
|
283
|
+
# PDFLUENT_LICENSE_KEY="<base64-key>" python myscript.py
|
|
284
|
+
info = activate_license("") # reads PDFLUENT_LICENSE_KEY from env
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
`LicenseInfo` fields: `licensee`, `company`, `tier`, `expires_at` (Unix timestamp), `seats`.
|
|
288
|
+
|
|
289
|
+
## Comparison
|
|
290
|
+
|
|
291
|
+
| | pdfluent | pypdf | pdfminer | pdfplumber | pikepdf |
|
|
292
|
+
|---|---|---|---|---|---|
|
|
293
|
+
| Rendering | ✓ | – | – | ✓ (via pdfminer) | – |
|
|
294
|
+
| Text extraction | ✓ | ✓ | ✓ | ✓ | – |
|
|
295
|
+
| Form fill | ✓ | ✓ | – | – | ✓ |
|
|
296
|
+
| Redaction | ✓ | – | – | – | ✓ |
|
|
297
|
+
| Encryption | ✓ (AES-256) | ✓ | – | – | ✓ |
|
|
298
|
+
| PDF/A validation | ✓ | – | – | – | – |
|
|
299
|
+
| Typed stubs | ✓ | partial | – | – | – |
|
|
300
|
+
| Native deps | **none** | none | none | none | libqpdf |
|
|
301
|
+
| Language | **Rust** | Python | Python | Python | C++ |
|
|
302
|
+
|
|
303
|
+
## License Activation
|
|
304
|
+
|
|
305
|
+
The SDK runs in Trial mode by default; output is marked via `/Producer`
|
|
306
|
+
metadata. Activate a license to unlock the paid-tier capability set.
|
|
307
|
+
|
|
308
|
+
```python
|
|
309
|
+
import pdfluent
|
|
310
|
+
|
|
311
|
+
# Activate from a key string
|
|
312
|
+
pdfluent.activate_license_key("tier:enterprise")
|
|
313
|
+
|
|
314
|
+
# Or read the key from a UTF-8 text file
|
|
315
|
+
pdfluent.activate_license_file("/path/to/key.lic")
|
|
316
|
+
|
|
317
|
+
# Inspect the current status (always succeeds; defaults to Trial)
|
|
318
|
+
status = pdfluent.license_status()
|
|
319
|
+
print(status.tier) # "Enterprise"
|
|
320
|
+
print(status.source) # "Explicit" | "EnvVar" | "Default"
|
|
321
|
+
print(status.output_is_marked) # False
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
The `PDFLUENT_LICENSE_KEY` environment variable is honoured automatically
|
|
325
|
+
on process start when no explicit activation has happened.
|
|
326
|
+
|
|
327
|
+
**Behavior to be aware of:**
|
|
328
|
+
|
|
329
|
+
- The active tier is **process-global and set-once**. Re-activating with the
|
|
330
|
+
same key is a no-op. Re-activating with a different tier raises
|
|
331
|
+
`RuntimeError`; restart Python to switch tiers.
|
|
332
|
+
- Invalid keys raise `ValueError`; missing license files raise `OSError`.
|
|
333
|
+
- The key string is never logged or stored beyond the call to
|
|
334
|
+
`activate_license_key`.
|
|
335
|
+
|
|
336
|
+
The 1.0 release accepts the simple evaluation format `tier:<name>`
|
|
337
|
+
(`trial`/`developer`/`team`/`business`/`enterprise`). Cryptographically
|
|
338
|
+
signed payloads will be accepted by the same functions in 1.1 without
|
|
339
|
+
breaking the API.
|
|
340
|
+
|
|
341
|
+
## Building from Source
|
|
342
|
+
|
|
343
|
+
Requires a Rust toolchain and `maturin`.
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
pip install maturin
|
|
347
|
+
cd crates/pdf-python
|
|
348
|
+
maturin develop --release # install in current venv
|
|
349
|
+
maturin build --release # build wheel in ./dist/
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
## License
|
|
353
|
+
|
|
354
|
+
PDFluent Commercial License. See LICENSE.
|
|
355
|
+
|
|
356
|
+
## Links
|
|
357
|
+
|
|
358
|
+
- **Documentation:** <https://pdfluent.com/docs>
|
|
359
|
+
- **Pricing:** <https://pdfluent.com/pricing>
|
|
360
|
+
- **PDFluent editor** (source-available): <https://github.com/pdfluent/pdfluent>. The free desktop app this SDK powers.
|
|
361
|
+
- Built by [Innovation Trigger BV](https://pdfluent.com)
|
|
362
|
+
|