reportlab-enhanced 0.0.1__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.
- reportlab_enhanced-0.0.1/.hg_archival.txt +6 -0
- reportlab_enhanced-0.0.1/CHANGES.md +29 -0
- reportlab_enhanced-0.0.1/INSTALL.txt +1 -0
- reportlab_enhanced-0.0.1/LICENSE +57 -0
- reportlab_enhanced-0.0.1/MANIFEST.in +9 -0
- reportlab_enhanced-0.0.1/PKG-INFO +152 -0
- reportlab_enhanced-0.0.1/README.md +112 -0
- reportlab_enhanced-0.0.1/VERSION.txt +13 -0
- reportlab_enhanced-0.0.1/demos/colors/colortest.py +105 -0
- reportlab_enhanced-0.0.1/demos/gadflypaper/00readme.txt +3 -0
- reportlab_enhanced-0.0.1/demos/gadflypaper/gfe.py +902 -0
- reportlab_enhanced-0.0.1/demos/odyssey/00readme.txt +56 -0
- reportlab_enhanced-0.0.1/demos/odyssey/dodyssey.py +245 -0
- reportlab_enhanced-0.0.1/demos/odyssey/fodyssey.py +160 -0
- reportlab_enhanced-0.0.1/demos/odyssey/odyssey.py +142 -0
- reportlab_enhanced-0.0.1/demos/odyssey/odyssey.txt +212 -0
- reportlab_enhanced-0.0.1/demos/rlzope/readme.txt +73 -0
- reportlab_enhanced-0.0.1/demos/rlzope/rlzope.py +169 -0
- reportlab_enhanced-0.0.1/demos/stdfonts/00readme.txt +7 -0
- reportlab_enhanced-0.0.1/demos/stdfonts/stdfonts.py +73 -0
- reportlab_enhanced-0.0.1/demos/tests/testdemos.py +13 -0
- reportlab_enhanced-0.0.1/docs/00readme.txt +7 -0
- reportlab_enhanced-0.0.1/docs/Makefile +89 -0
- reportlab_enhanced-0.0.1/docs/genAll.py +46 -0
- reportlab_enhanced-0.0.1/docs/gen_epydoc +6 -0
- reportlab_enhanced-0.0.1/docs/i18n/__init__.py +29 -0
- reportlab_enhanced-0.0.1/docs/i18n/en.py +13 -0
- reportlab_enhanced-0.0.1/docs/i18n/zh_CN.py +14 -0
- reportlab_enhanced-0.0.1/docs/images/Edit_Prefs.gif +0 -0
- reportlab_enhanced-0.0.1/docs/images/Python_21.gif +0 -0
- reportlab_enhanced-0.0.1/docs/images/Python_21_HINT.gif +0 -0
- reportlab_enhanced-0.0.1/docs/images/fileExchange.gif +0 -0
- reportlab_enhanced-0.0.1/docs/images/jpn.gif +0 -0
- reportlab_enhanced-0.0.1/docs/images/jpnchars.jpg +0 -0
- reportlab_enhanced-0.0.1/docs/images/lj8100.jpg +0 -0
- reportlab_enhanced-0.0.1/docs/images/redsquare.png +0 -0
- reportlab_enhanced-0.0.1/docs/images/replogo.a85 +439 -0
- reportlab_enhanced-0.0.1/docs/images/replogo.gif +0 -0
- reportlab_enhanced-0.0.1/docs/images/testimg.gif +0 -0
- reportlab_enhanced-0.0.1/docs/make.bat +113 -0
- reportlab_enhanced-0.0.1/docs/reference/build.bat +3 -0
- reportlab_enhanced-0.0.1/docs/reference/genreference.py +31 -0
- reportlab_enhanced-0.0.1/docs/reference/reference.yml +312 -0
- reportlab_enhanced-0.0.1/docs/source/_static/basic.css +5 -0
- reportlab_enhanced-0.0.1/docs/source/_static/default.css +995 -0
- reportlab_enhanced-0.0.1/docs/source/_templates/layout.html +6 -0
- reportlab_enhanced-0.0.1/docs/source/_templates/page.html +35 -0
- reportlab_enhanced-0.0.1/docs/source/conf.py +198 -0
- reportlab_enhanced-0.0.1/docs/source/graphics.rst +97 -0
- reportlab_enhanced-0.0.1/docs/source/index.rst +30 -0
- reportlab_enhanced-0.0.1/docs/source/lib.rst +44 -0
- reportlab_enhanced-0.0.1/docs/source/pdfgen.rst +11 -0
- reportlab_enhanced-0.0.1/docs/source/platypus.rst +70 -0
- reportlab_enhanced-0.0.1/docs/userguide/app_demos.py +113 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch1_intro.py +418 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch2_graphics.py +1263 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch2a_fonts.py +582 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch3_pdffeatures.py +690 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch4_platypus_concepts.py +514 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch5_paragraphs.py +449 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch6_tables.py +792 -0
- reportlab_enhanced-0.0.1/docs/userguide/ch7_custom.py +81 -0
- reportlab_enhanced-0.0.1/docs/userguide/genuserguide.py +132 -0
- reportlab_enhanced-0.0.1/docs/userguide/graph_charts.py +1459 -0
- reportlab_enhanced-0.0.1/docs/userguide/graph_concepts.py +364 -0
- reportlab_enhanced-0.0.1/docs/userguide/graph_intro.py +17 -0
- reportlab_enhanced-0.0.1/docs/userguide/graph_shapes.py +415 -0
- reportlab_enhanced-0.0.1/docs/userguide/graph_widgets.py +421 -0
- reportlab_enhanced-0.0.1/docs/userguide/testfile.txt +2 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/app_demos.py +110 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch1_intro.py +379 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch2_graphics_1.py +404 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch2_graphics_2.py +412 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch2_graphics_3.py +291 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch2a_fonts_1.py +376 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch2a_fonts_2.py +173 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch3_pdffeatures_1.py +409 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch3_pdffeatures_2.py +258 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch4_platypus_concepts.py +468 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch5_paragraphs.py +415 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch6_tables_1.py +390 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch6_tables_2.py +363 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/ch7_custom.py +75 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_charts_1.py +499 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_charts_2.py +373 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_charts_3.py +468 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_concepts.py +326 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_intro.py +15 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_shapes.py +389 -0
- reportlab_enhanced-0.0.1/docs/userguide/zh-CN/graph_widgets.py +392 -0
- reportlab_enhanced-0.0.1/docs/userguide_web/build.py +21 -0
- reportlab_enhanced-0.0.1/docs/userguide_web/mkdocs.yml +77 -0
- reportlab_enhanced-0.0.1/docs/userguide_web/py2md.py +347 -0
- reportlab_enhanced-0.0.1/pyproject.toml +62 -0
- reportlab_enhanced-0.0.1/setup.cfg +4 -0
- reportlab_enhanced-0.0.1/setup.py +241 -0
- reportlab_enhanced-0.0.1/src/reportlab/MANIFEST.in +6 -0
- reportlab_enhanced-0.0.1/src/reportlab/__init__.py +71 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/00readme.txt +8 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGarden-changelog.txt +14 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGarden-copying-gpl.txt +339 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGarden-copying.txt +26 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGarden-readme.txt +106 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGarden.sfd +11067 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGardenMK.afm +429 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/DarkGardenMK.pfb +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/Vera.ttf +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/VeraBI.ttf +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/VeraBd.ttf +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/VeraIt.ttf +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/bitstream-vera-license.txt +124 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/callig15.afm +191 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/callig15.pfb +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/fonts/hb-test.ttf +0 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/__init__.py +6 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/README +59 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/TODO +24 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/__init__.py +152 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/code128.py +460 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/code39.py +244 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/code93.py +234 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/common.py +775 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/dmtx.py +273 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/eanbc.py +574 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/ecc200datamatrix.py +445 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/fourstate.py +77 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/lto.py +195 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/qr.py +197 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/qrencoder.py +1130 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/test.py +280 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/usps.py +232 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/usps4s.py +465 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/barcode/widgets.py +357 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/__init__.py +5 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/areas.py +94 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/axes.py +2303 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/barcharts.py +2434 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/dotbox.py +165 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/doughnut.py +473 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/legends.py +647 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/linecharts.py +801 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/lineplots.py +1248 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/markers.py +82 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/piecharts.py +1706 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/slidebox.py +185 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/spider.py +411 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/textlabels.py +581 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/utils.py +483 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/charts/utils3d.py +230 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/renderPDF.py +400 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/renderPM.py +856 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/renderPS.py +986 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/renderSVG.py +971 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/renderbase.py +356 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/__init__.py +1 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/bubble.py +73 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/clustered_bar.py +84 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/clustered_column.py +83 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/excelcolors.py +45 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/exploded_pie.py +65 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/filled_radar.py +54 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/line_chart.py +83 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/linechart_with_markers.py +94 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/radar.py +66 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/runall.py +57 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/scatter.py +71 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/scatter_lines.py +82 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/scatter_lines_markers.py +72 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/simple_pie.py +61 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/stacked_bar.py +85 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/samples/stacked_column.py +84 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/shapes.py +1572 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/svgpath.py +451 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/testdrawings.py +296 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/testshapes.py +576 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/transform.py +96 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/utils.py +300 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgetbase.py +655 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/__init__.py +5 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/adjustableArrow.py +126 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/eventcal.py +299 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/flags.py +879 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/grids.py +542 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/markers.py +245 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/signsandsymbols.py +977 -0
- reportlab_enhanced-0.0.1/src/reportlab/graphics/widgets/table.py +160 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/PyFontify.py +161 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/__init__.py +7 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/abag.py +36 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/arciv.py +214 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/attrmap.py +189 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/boxstuff.py +84 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/codecharts.py +363 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/colors.py +1098 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/corp.py +481 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/enums.py +11 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/fontfinder.py +360 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/fonts.py +96 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/formatters.py +109 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/geomutils.py +33 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/logger.py +61 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/normalDate.py +656 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/pagesizes.py +84 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/pdfencrypt.py +776 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/pygments2xpre.py +71 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/randomtext.py +366 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/rl_accel.py +415 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/rl_safe_eval.py +1287 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/rltempfile.py +38 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/rparsexml.py +449 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/sequencer.py +311 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/styles.py +436 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/testutils.py +406 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/textsplit.py +241 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/units.py +30 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/utils.py +1359 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/validators.py +382 -0
- reportlab_enhanced-0.0.1/src/reportlab/lib/yaml.py +185 -0
- reportlab_enhanced-0.0.1/src/reportlab/license.txt +29 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/__init__.py +6 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_can_cmap_data.py +58 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_cidfontdata.py +483 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata.py +255 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_macexpert.py +28 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_macroman.py +35 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_pdfdoc.py +22 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_standard.py +15 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_symbol.py +30 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_winansi.py +37 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_enc_zapfdingbats.py +20 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_courier.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_courierbold.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_courierboldoblique.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_courieroblique.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_helvetica.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_helveticabold.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_helveticaboldoblique.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_helveticaoblique.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_symbol.py +190 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_timesbold.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_timesbolditalic.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_timesitalic.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_timesroman.py +229 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_fontdata_widths_zapfdingbats.py +202 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/_glyphlist.py +4330 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/acroform.py +1150 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/cidfonts.py +516 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/pdfdoc.py +2417 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/pdfform.py +582 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/pdfmetrics.py +851 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/pdfpattern.py +93 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/pdfutils.py +298 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/rl_codecs.py +1107 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfbase/ttfonts.py +1585 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfgen/__init__.py +5 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfgen/canvas.py +2021 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfgen/pathobject.py +139 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfgen/pdfgeom.py +77 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfgen/pdfimages.py +215 -0
- reportlab_enhanced-0.0.1/src/reportlab/pdfgen/textobject.py +777 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/__init__.py +14 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/doctemplate.py +1408 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/figures.py +420 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/flowables.py +2663 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/frames.py +268 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/multicol.py +111 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/para.py +2367 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/paragraph.py +3038 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/paraparser.py +3397 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/tableofcontents.py +559 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/tables.py +2752 -0
- reportlab_enhanced-0.0.1/src/reportlab/platypus/xpreformatted.py +345 -0
- reportlab_enhanced-0.0.1/src/reportlab/rl_config.py +150 -0
- reportlab_enhanced-0.0.1/src/reportlab/rl_settings.py +279 -0
- reportlab_enhanced-0.0.1/src/reportlab_enhanced.egg-info/PKG-INFO +152 -0
- reportlab_enhanced-0.0.1/src/reportlab_enhanced.egg-info/SOURCES.txt +411 -0
- reportlab_enhanced-0.0.1/src/reportlab_enhanced.egg-info/dependency_links.txt +1 -0
- reportlab_enhanced-0.0.1/src/reportlab_enhanced.egg-info/requires.txt +18 -0
- reportlab_enhanced-0.0.1/src/reportlab_enhanced.egg-info/top_level.txt +1 -0
- reportlab_enhanced-0.0.1/tests/00readme.txt +18 -0
- reportlab_enhanced-0.0.1/tests/__init__.py +2 -0
- reportlab_enhanced-0.0.1/tests/_ttfont_fallback_helpers.py +73 -0
- reportlab_enhanced-0.0.1/tests/alpha_test.png +0 -0
- reportlab_enhanced-0.0.1/tests/encryption.gif +0 -0
- reportlab_enhanced-0.0.1/tests/gray-alpha.png +0 -0
- reportlab_enhanced-0.0.1/tests/pythonpowered-gs.gif +0 -0
- reportlab_enhanced-0.0.1/tests/pythonpowered.gif +0 -0
- reportlab_enhanced-0.0.1/tests/rltw-icon-tr.png +0 -0
- reportlab_enhanced-0.0.1/tests/runAll.py +153 -0
- reportlab_enhanced-0.0.1/tests/solid_red_alpha.png +0 -0
- reportlab_enhanced-0.0.1/tests/tall_red.png +0 -0
- reportlab_enhanced-0.0.1/tests/test-cross.tiff +0 -0
- reportlab_enhanced-0.0.1/tests/test-indexed.png +0 -0
- reportlab_enhanced-0.0.1/tests/test-rgba.png +0 -0
- reportlab_enhanced-0.0.1/tests/test_arabic.py +249 -0
- reportlab_enhanced-0.0.1/tests/test_charts_textlabels.py +285 -0
- reportlab_enhanced-0.0.1/tests/test_crypto_algorithms.py +132 -0
- reportlab_enhanced-0.0.1/tests/test_docs_build.py +43 -0
- reportlab_enhanced-0.0.1/tests/test_docstrings.py +203 -0
- reportlab_enhanced-0.0.1/tests/test_extra.py +93 -0
- reportlab_enhanced-0.0.1/tests/test_geomutils.py +32 -0
- reportlab_enhanced-0.0.1/tests/test_graphics_barcode.py +355 -0
- reportlab_enhanced-0.0.1/tests/test_graphics_charts.py +1370 -0
- reportlab_enhanced-0.0.1/tests/test_graphics_images.py +195 -0
- reportlab_enhanced-0.0.1/tests/test_graphics_layout.py +82 -0
- reportlab_enhanced-0.0.1/tests/test_graphics_render.py +186 -0
- reportlab_enhanced-0.0.1/tests/test_graphics_speed.py +82 -0
- reportlab_enhanced-0.0.1/tests/test_hello.py +53 -0
- reportlab_enhanced-0.0.1/tests/test_images.py +63 -0
- reportlab_enhanced-0.0.1/tests/test_invariant.py +72 -0
- reportlab_enhanced-0.0.1/tests/test_issues.py +110 -0
- reportlab_enhanced-0.0.1/tests/test_lib_colors.py +198 -0
- reportlab_enhanced-0.0.1/tests/test_lib_normaldate.py +269 -0
- reportlab_enhanced-0.0.1/tests/test_lib_pdfencrypt.py +150 -0
- reportlab_enhanced-0.0.1/tests/test_lib_rl_safe_eval.py +223 -0
- reportlab_enhanced-0.0.1/tests/test_lib_sequencer.py +136 -0
- reportlab_enhanced-0.0.1/tests/test_lib_utils.py +364 -0
- reportlab_enhanced-0.0.1/tests/test_lib_validators.py +183 -0
- reportlab_enhanced-0.0.1/tests/test_multibyte_chs.py +81 -0
- reportlab_enhanced-0.0.1/tests/test_multibyte_cht.py +128 -0
- reportlab_enhanced-0.0.1/tests/test_multibyte_jpn.py +430 -0
- reportlab_enhanced-0.0.1/tests/test_multibyte_kor.py +121 -0
- reportlab_enhanced-0.0.1/tests/test_paragraphs.py +473 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_encodings.py +269 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_fontembed.py +107 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_pdfdoc.py +60 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_pdfform.py +173 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_pdfmetrics.py +123 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_pdfutils.py +48 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_postscript.py +75 -0
- reportlab_enhanced-0.0.1/tests/test_pdfbase_ttfonts.py +704 -0
- reportlab_enhanced-0.0.1/tests/test_pdfgen_callback.py +36 -0
- reportlab_enhanced-0.0.1/tests/test_pdfgen_general.py +1293 -0
- reportlab_enhanced-0.0.1/tests/test_pdfgen_links.py +190 -0
- reportlab_enhanced-0.0.1/tests/test_pdfgen_overprint.py +73 -0
- reportlab_enhanced-0.0.1/tests/test_pdfgen_pagemodes.py +65 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_accum.py +91 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_breaking.py +491 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_cjk_wrap.py +102 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_general.py +768 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_images.py +87 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_indents.py +199 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_index.py +134 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_leftright.py +158 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_lists.py +216 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_paragraphs.py +1783 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_paraparser.py +137 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_pleaseturnover.py +216 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_preformatted.py +214 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_programming.py +135 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_tables.py +1197 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_toc.py +382 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_wrapping.py +102 -0
- reportlab_enhanced-0.0.1/tests/test_platypus_xref.py +137 -0
- reportlab_enhanced-0.0.1/tests/test_pyfiles.py +151 -0
- reportlab_enhanced-0.0.1/tests/test_renderPS.py +204 -0
- reportlab_enhanced-0.0.1/tests/test_renderSVG.py +250 -0
- reportlab_enhanced-0.0.1/tests/test_rl_accel.py +214 -0
- reportlab_enhanced-0.0.1/tests/test_source_chars.py +95 -0
- reportlab_enhanced-0.0.1/tests/test_table_inrowsplit.py +606 -0
- reportlab_enhanced-0.0.1/tests/test_table_layout.py +831 -0
- reportlab_enhanced-0.0.1/tests/test_tools_pythonpoint.py +34 -0
- reportlab_enhanced-0.0.1/tests/test_ttfont_fallback_api.py +72 -0
- reportlab_enhanced-0.0.1/tests/test_ttfont_fallback_core.py +259 -0
- reportlab_enhanced-0.0.1/tests/test_ttfont_fallback_multiscript.py +204 -0
- reportlab_enhanced-0.0.1/tests/test_ttfont_fallback_pdf.py +243 -0
- reportlab_enhanced-0.0.1/tests/test_utils.py +39 -0
- reportlab_enhanced-0.0.1/tests/test_widgetbase_tpc.py +194 -0
- reportlab_enhanced-0.0.1/tests/test_widgets_grids.py +453 -0
- reportlab_enhanced-0.0.1/tests/unimportable.py +10 -0
- reportlab_enhanced-0.0.1/tools/README +10 -0
- reportlab_enhanced-0.0.1/tools/__init__.py +3 -0
- reportlab_enhanced-0.0.1/tools/docco/README +8 -0
- reportlab_enhanced-0.0.1/tools/docco/__init__.py +3 -0
- reportlab_enhanced-0.0.1/tools/docco/codegrab.py +228 -0
- reportlab_enhanced-0.0.1/tools/docco/docpy.py +1239 -0
- reportlab_enhanced-0.0.1/tools/docco/examples.py +881 -0
- reportlab_enhanced-0.0.1/tools/docco/graphdocpy.py +976 -0
- reportlab_enhanced-0.0.1/tools/docco/rl_doc_utils.py +430 -0
- reportlab_enhanced-0.0.1/tools/docco/rltemplate.py +159 -0
- reportlab_enhanced-0.0.1/tools/docco/stylesheet.py +165 -0
- reportlab_enhanced-0.0.1/tools/docco/t_parse.py +244 -0
- reportlab_enhanced-0.0.1/tools/docco/yaml.py +198 -0
- reportlab_enhanced-0.0.1/tools/docco/yaml2pdf.py +99 -0
- reportlab_enhanced-0.0.1/tools/pdfpath.py +31 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/README +29 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/__init__.py +3 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/customshapes.py +298 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/examples.py +834 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/figures.xml +71 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/htu.xml +96 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/leftlogo.a85 +53 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/leftlogo.gif +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/lj8100.jpg +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/monterey.xml +306 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/outline.gif +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/pplogo.gif +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/python.gif +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/pythonpoint.xml +1051 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/slidebox.py +29 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/spectrum.png +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/demos/vertpython.gif +0 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/pythonpoint.dtd +275 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/pythonpoint.py +1151 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/stdparser.py +865 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/styles/__init__.py +3 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/styles/horrible.py +101 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/styles/htu.py +156 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/styles/modern.py +120 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/styles/projection.py +106 -0
- reportlab_enhanced-0.0.1/tools/pythonpoint/styles/standard.py +130 -0
- reportlab_enhanced-0.0.1/tools/utils/add_bleed.py +28 -0
- reportlab_enhanced-0.0.1/tools/utils/dumpttf.py +60 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.0.1] - 2026-02-12
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- Complete CI/CD automation workflow for GitHub Actions
|
|
11
|
+
- Automatic GitHub Pages deployment on master push
|
|
12
|
+
- Automatic PyPI publishing on release tags
|
|
13
|
+
- Version verification against pyproject.toml
|
|
14
|
+
- Dry-run mode support for workflow testing
|
|
15
|
+
- Version management refactored to use pyproject.toml as single source of truth
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- pyproject.toml: Complete reconfiguration with static version
|
|
19
|
+
- setup.py: Simplified to retain only dynamic build logic
|
|
20
|
+
- src/reportlab/__init__.py: Now uses importlib.metadata for version resolution
|
|
21
|
+
|
|
22
|
+
## [0.0.0] - 2025-02-12
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- Initial fork from ReportLab
|
|
26
|
+
- Based on ReportLab version 3.6.13
|
|
27
|
+
|
|
28
|
+
This version represents the starting point of the reportlab-enhanced fork,
|
|
29
|
+
containing all the features and fixes from the upstream ReportLab 3.6.13 release.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Please see README.txt for installation instructions.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#####################################################################################
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2025-2026, selcarpa
|
|
4
|
+
# All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
|
7
|
+
# are permitted provided that the following conditions are met:
|
|
8
|
+
#
|
|
9
|
+
# * Redistributions of source code must retain the above copyright notice,
|
|
10
|
+
# this list of conditions and the following disclaimer.
|
|
11
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
# and/or other materials provided with the distribution.
|
|
14
|
+
# * Neither the name of the copyright holder nor the names of its contributors
|
|
15
|
+
# may be used to endorse or promote products derived from this software
|
|
16
|
+
# without specific prior written permission.
|
|
17
|
+
#
|
|
18
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
19
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
20
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
21
|
+
# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
22
|
+
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
23
|
+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
24
|
+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
25
|
+
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
26
|
+
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
27
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
#
|
|
29
|
+
#####################################################################################
|
|
30
|
+
#
|
|
31
|
+
# Copyright (c) 2000-2024, ReportLab Inc.
|
|
32
|
+
# All rights reserved.
|
|
33
|
+
#
|
|
34
|
+
# Redistribution and use in source and binary forms, with or without modification,
|
|
35
|
+
# are permitted provided that the following conditions are met:
|
|
36
|
+
#
|
|
37
|
+
# * Redistributions of source code must retain the above copyright notice,
|
|
38
|
+
# this list of conditions and the following disclaimer.
|
|
39
|
+
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
40
|
+
# this list of conditions and the following disclaimer in the documentation
|
|
41
|
+
# and/or other materials provided with the distribution.
|
|
42
|
+
# * Neither the name of the company nor the names of its contributors may be
|
|
43
|
+
# used to endorse or promote products derived from this software without
|
|
44
|
+
# specific prior written permission.
|
|
45
|
+
#
|
|
46
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
47
|
+
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
48
|
+
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
49
|
+
# IN NO EVENT SHALL THE OFFICERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
50
|
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
51
|
+
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
52
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
53
|
+
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
54
|
+
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
55
|
+
# SUCH DAMAGE.
|
|
56
|
+
#
|
|
57
|
+
#####################################################################################
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
include *.txt *.yml CHANGES.md
|
|
2
|
+
include src/reportlab/graphics/barcode/README
|
|
3
|
+
include src/reportlab/graphics/barcode/TODO
|
|
4
|
+
include src/reportlab/LICENSE
|
|
5
|
+
include src/reportlab/MANIFEST.in
|
|
6
|
+
recursive-include demos *.py *.txt
|
|
7
|
+
recursive-include docs *.py *.txt *.gif *.a85 *.png *.jpg *.rst *.html gen_epydoc *.bat Makefile *.yml *.css
|
|
8
|
+
recursive-include tests *.py *.gif *.jpg *.png 00readme.txt *.tiff
|
|
9
|
+
recursive-include tools *.py *.dtd *.xml *.a85 *.gif README *.jpg *.png
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: reportlab-enhanced
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: The ReportLab Toolkit (Enhanced Fork)
|
|
5
|
+
Author: Andy Robinson, Robin Becker, the ReportLab team and the community
|
|
6
|
+
Author-email: selcarpa <selcarpa@gmail.com>
|
|
7
|
+
License: BSD license (see LICENSE for details), Copyright (c) 2025-2026 selcarpa, Copyright (c) 2000-2024 ReportLab Inc.
|
|
8
|
+
Project-URL: Homepage, https://github.com/selcarpa/reportlab_enhanced
|
|
9
|
+
Project-URL: Documentation, https://selcarpa.github.io/reportlab_enhanced/
|
|
10
|
+
Project-URL: Repository, https://github.com/selcarpa/reportlab_enhanced
|
|
11
|
+
Project-URL: Changelog, https://github.com/selcarpa/reportlab_enhanced/releases
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Topic :: Printing
|
|
16
|
+
Classifier: Topic :: Text Processing :: Markup
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Requires-Python: <4,>=3.9
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
License-File: LICENSE
|
|
26
|
+
Requires-Dist: pillow>=9.0.0
|
|
27
|
+
Requires-Dist: charset-normalizer
|
|
28
|
+
Provides-Extra: accel
|
|
29
|
+
Requires-Dist: rl_accel<1.1,>=0.9.0; extra == "accel"
|
|
30
|
+
Provides-Extra: renderpm
|
|
31
|
+
Requires-Dist: rl_renderPM<4.1,>=4.0.3; extra == "renderpm"
|
|
32
|
+
Provides-Extra: pycairo
|
|
33
|
+
Requires-Dist: rlPyCairo<1,>=0.2.0; extra == "pycairo"
|
|
34
|
+
Requires-Dist: freetype-py<2.4,>=2.3.0; extra == "pycairo"
|
|
35
|
+
Provides-Extra: bidi
|
|
36
|
+
Requires-Dist: rlbidi; extra == "bidi"
|
|
37
|
+
Provides-Extra: shaping
|
|
38
|
+
Requires-Dist: uharfbuzz; extra == "shaping"
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
# reportlab-enhanced
|
|
42
|
+
|
|
43
|
+
[中文](README.zh-CN.md)
|
|
44
|
+
|
|
45
|
+
An enhanced fork of [ReportLab](https://www.reportlab.com/) — the open-source Python library for generating PDF documents, charts, and vector graphics.
|
|
46
|
+
|
|
47
|
+
## Features
|
|
48
|
+
|
|
49
|
+
- Generate rich PDF documents with text, images, tables, and charts
|
|
50
|
+
- High-level layout engine (Platypus) with flowables, frames, and page templates
|
|
51
|
+
- Low-level Canvas API for direct PDF drawing operations
|
|
52
|
+
- Charts and graphics with SVG/PS/bitmap rendering support
|
|
53
|
+
- TrueType and Type1 font handling
|
|
54
|
+
- **Enhanced**: TrueType font fallback support for missing glyphs
|
|
55
|
+
- Pure Python (no C extensions required since v4.0)
|
|
56
|
+
- Python >= 3.9
|
|
57
|
+
|
|
58
|
+
## Enhancements over upstream
|
|
59
|
+
|
|
60
|
+
This fork builds on ReportLab 4.x with additional features:
|
|
61
|
+
|
|
62
|
+
- **TTFont Fallback**: Automatic font fallback for missing glyphs in TrueType fonts, controlled via environment variable `REPORTLAB_FONT_FALLBACK=1`
|
|
63
|
+
- Active development with improvements to font handling and CJK support
|
|
64
|
+
|
|
65
|
+
See [CHANGES.md](CHANGES.md) for the full changelog.
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pip install reportlab-enhanced
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
For development:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
git clone https://github.com/selcarpa/reportlab_enhanced.git
|
|
77
|
+
cd reportlab-enhanced
|
|
78
|
+
pip install -e .
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Optional dependencies
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pip install reportlab-enhanced[accel] # rl_accel acceleration
|
|
85
|
+
pip install reportlab-enhanced[renderpm] # rl_renderPM bitmap rendering
|
|
86
|
+
pip install reportlab-enhanced[pycairo] # Cairo-based rendering
|
|
87
|
+
pip install reportlab-enhanced[bidi] # Bidirectional text support
|
|
88
|
+
pip install reportlab-enhanced[shaping] # HarfBuzz text shaping
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Quick Start
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
from reportlab.lib.pagesizes import A4
|
|
95
|
+
from reportlab.pdfgen import canvas
|
|
96
|
+
|
|
97
|
+
c = canvas.Canvas("hello.pdf", pagesize=A4)
|
|
98
|
+
c.drawString(100, 750, "Hello, reportlab-enhanced!")
|
|
99
|
+
c.save()
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
For the high-level Platypus API:
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
from reportlab.lib.pagesizes import A4
|
|
106
|
+
from reportlab.platypus import SimpleDocTemplate, Paragraph
|
|
107
|
+
from reportlab.lib.styles import getSampleStyleSheet
|
|
108
|
+
|
|
109
|
+
doc = SimpleDocTemplate("doc.pdf", pagesize=A4)
|
|
110
|
+
styles = getSampleStyleSheet()
|
|
111
|
+
story = [Paragraph("Hello, reportlab-enhanced!", styles["Title"])]
|
|
112
|
+
doc.build(story)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Documentation
|
|
116
|
+
|
|
117
|
+
The original ReportLab documentation is available at [docs.reportlab.com](https://docs.reportlab.com/).
|
|
118
|
+
|
|
119
|
+
To build the included PDF manuals:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
cd docs && python genAll.py
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This generates three PDF references in the `docs/` directory.
|
|
126
|
+
|
|
127
|
+
## Development
|
|
128
|
+
|
|
129
|
+
This project extensively uses **vibe coding** with [Claude Code](https://claude.ai/code) (Anthropic Claude) as a development partner for code generation, refactoring, and documentation.
|
|
130
|
+
|
|
131
|
+
### Running tests
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
python setup.py tests-preinstall
|
|
135
|
+
# or
|
|
136
|
+
cd tests && python runAll.py
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Contributing
|
|
140
|
+
|
|
141
|
+
Contributions are welcome! Please open an issue or pull request on [GitHub](https://github.com/selcarpa/reportlab_enhanced).
|
|
142
|
+
|
|
143
|
+
## Acknowledgements
|
|
144
|
+
|
|
145
|
+
This project is a fork of [ReportLab](https://www.reportlab.com/) by ReportLab Inc., originally created by Andy Robinson, Robin Becker, and the ReportLab team. The upstream project has been developed since 2000 and provides the foundation for this enhanced version.
|
|
146
|
+
|
|
147
|
+
## License
|
|
148
|
+
|
|
149
|
+
BSD License. See [LICENSE](LICENSE) for details.
|
|
150
|
+
|
|
151
|
+
- Copyright (c) 2025-2026, selcarpa
|
|
152
|
+
- Copyright (c) 2000-2024, ReportLab Inc.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# reportlab-enhanced
|
|
2
|
+
|
|
3
|
+
[中文](README.zh-CN.md)
|
|
4
|
+
|
|
5
|
+
An enhanced fork of [ReportLab](https://www.reportlab.com/) — the open-source Python library for generating PDF documents, charts, and vector graphics.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- Generate rich PDF documents with text, images, tables, and charts
|
|
10
|
+
- High-level layout engine (Platypus) with flowables, frames, and page templates
|
|
11
|
+
- Low-level Canvas API for direct PDF drawing operations
|
|
12
|
+
- Charts and graphics with SVG/PS/bitmap rendering support
|
|
13
|
+
- TrueType and Type1 font handling
|
|
14
|
+
- **Enhanced**: TrueType font fallback support for missing glyphs
|
|
15
|
+
- Pure Python (no C extensions required since v4.0)
|
|
16
|
+
- Python >= 3.9
|
|
17
|
+
|
|
18
|
+
## Enhancements over upstream
|
|
19
|
+
|
|
20
|
+
This fork builds on ReportLab 4.x with additional features:
|
|
21
|
+
|
|
22
|
+
- **TTFont Fallback**: Automatic font fallback for missing glyphs in TrueType fonts, controlled via environment variable `REPORTLAB_FONT_FALLBACK=1`
|
|
23
|
+
- Active development with improvements to font handling and CJK support
|
|
24
|
+
|
|
25
|
+
See [CHANGES.md](CHANGES.md) for the full changelog.
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install reportlab-enhanced
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For development:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
git clone https://github.com/selcarpa/reportlab_enhanced.git
|
|
37
|
+
cd reportlab-enhanced
|
|
38
|
+
pip install -e .
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Optional dependencies
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install reportlab-enhanced[accel] # rl_accel acceleration
|
|
45
|
+
pip install reportlab-enhanced[renderpm] # rl_renderPM bitmap rendering
|
|
46
|
+
pip install reportlab-enhanced[pycairo] # Cairo-based rendering
|
|
47
|
+
pip install reportlab-enhanced[bidi] # Bidirectional text support
|
|
48
|
+
pip install reportlab-enhanced[shaping] # HarfBuzz text shaping
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Quick Start
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
from reportlab.lib.pagesizes import A4
|
|
55
|
+
from reportlab.pdfgen import canvas
|
|
56
|
+
|
|
57
|
+
c = canvas.Canvas("hello.pdf", pagesize=A4)
|
|
58
|
+
c.drawString(100, 750, "Hello, reportlab-enhanced!")
|
|
59
|
+
c.save()
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For the high-level Platypus API:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
from reportlab.lib.pagesizes import A4
|
|
66
|
+
from reportlab.platypus import SimpleDocTemplate, Paragraph
|
|
67
|
+
from reportlab.lib.styles import getSampleStyleSheet
|
|
68
|
+
|
|
69
|
+
doc = SimpleDocTemplate("doc.pdf", pagesize=A4)
|
|
70
|
+
styles = getSampleStyleSheet()
|
|
71
|
+
story = [Paragraph("Hello, reportlab-enhanced!", styles["Title"])]
|
|
72
|
+
doc.build(story)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Documentation
|
|
76
|
+
|
|
77
|
+
The original ReportLab documentation is available at [docs.reportlab.com](https://docs.reportlab.com/).
|
|
78
|
+
|
|
79
|
+
To build the included PDF manuals:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
cd docs && python genAll.py
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This generates three PDF references in the `docs/` directory.
|
|
86
|
+
|
|
87
|
+
## Development
|
|
88
|
+
|
|
89
|
+
This project extensively uses **vibe coding** with [Claude Code](https://claude.ai/code) (Anthropic Claude) as a development partner for code generation, refactoring, and documentation.
|
|
90
|
+
|
|
91
|
+
### Running tests
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
python setup.py tests-preinstall
|
|
95
|
+
# or
|
|
96
|
+
cd tests && python runAll.py
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Contributing
|
|
100
|
+
|
|
101
|
+
Contributions are welcome! Please open an issue or pull request on [GitHub](https://github.com/selcarpa/reportlab_enhanced).
|
|
102
|
+
|
|
103
|
+
## Acknowledgements
|
|
104
|
+
|
|
105
|
+
This project is a fork of [ReportLab](https://www.reportlab.com/) by ReportLab Inc., originally created by Andy Robinson, Robin Becker, and the ReportLab team. The upstream project has been developed since 2000 and provides the foundation for this enhanced version.
|
|
106
|
+
|
|
107
|
+
## License
|
|
108
|
+
|
|
109
|
+
BSD License. See [LICENSE](LICENSE) for details.
|
|
110
|
+
|
|
111
|
+
- Copyright (c) 2025-2026, selcarpa
|
|
112
|
+
- Copyright (c) 2000-2024, ReportLab Inc.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Version Management
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
The single source of truth for the version number is in:
|
|
5
|
+
|
|
6
|
+
src/reportlab/__init__.py
|
|
7
|
+
|
|
8
|
+
Version = "x.y.z"
|
|
9
|
+
|
|
10
|
+
This version is automatically read by:
|
|
11
|
+
- setup.py during build (via get_version())
|
|
12
|
+
- pyproject.toml configuration (dynamic version)
|
|
13
|
+
- GitHub Actions workflow (version verification)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#Copyright ReportLab Europe Ltd. 2000-2017
|
|
2
|
+
#see license.txt for license details
|
|
3
|
+
__version__='3.3.0'
|
|
4
|
+
import reportlab.pdfgen.canvas
|
|
5
|
+
from reportlab.lib import colors
|
|
6
|
+
from reportlab.lib.units import inch
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def run():
|
|
10
|
+
c = reportlab.pdfgen.canvas.Canvas('colortest.pdf')
|
|
11
|
+
|
|
12
|
+
#do a test of CMYK interspersed with RGB
|
|
13
|
+
|
|
14
|
+
#first do RGB values
|
|
15
|
+
framePage(c, 'Color Demo - RGB Space and CMYK spaces interspersed' )
|
|
16
|
+
|
|
17
|
+
y = 700
|
|
18
|
+
|
|
19
|
+
c.setFillColorRGB(0,0,0)
|
|
20
|
+
c.drawString(100, y, 'cyan')
|
|
21
|
+
c.setFillColorCMYK(1,0,0,0)
|
|
22
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
23
|
+
y = y - 40
|
|
24
|
+
|
|
25
|
+
c.setFillColorRGB(0,0,0)
|
|
26
|
+
c.drawString(100, y, 'red')
|
|
27
|
+
c.setFillColorRGB(1,0,0)
|
|
28
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
29
|
+
y = y - 40
|
|
30
|
+
|
|
31
|
+
c.setFillColorRGB(0,0,0)
|
|
32
|
+
c.drawString(100, y, 'magenta')
|
|
33
|
+
c.setFillColorCMYK(0,1,0,0)
|
|
34
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
35
|
+
y = y - 40
|
|
36
|
+
|
|
37
|
+
c.setFillColorRGB(0,0,0)
|
|
38
|
+
c.drawString(100, y, 'green')
|
|
39
|
+
c.setFillColorRGB(0,1,0)
|
|
40
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
41
|
+
y = y - 40
|
|
42
|
+
|
|
43
|
+
c.setFillColorRGB(0,0,0)
|
|
44
|
+
c.drawString(100, y, 'yellow')
|
|
45
|
+
c.setFillColorCMYK(0,0,1,0)
|
|
46
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
47
|
+
y = y - 40
|
|
48
|
+
|
|
49
|
+
c.setFillColorRGB(0,0,0)
|
|
50
|
+
c.drawString(100, y, 'blue')
|
|
51
|
+
c.setFillColorRGB(0,0,1)
|
|
52
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
53
|
+
y = y - 40
|
|
54
|
+
|
|
55
|
+
c.setFillColorRGB(0,0,0)
|
|
56
|
+
c.drawString(100, y, 'black')
|
|
57
|
+
c.setFillColorCMYK(0,0,0,1)
|
|
58
|
+
c.rect(200, y, 300, 30, fill=1)
|
|
59
|
+
y = y - 40
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
c.showPage()
|
|
63
|
+
|
|
64
|
+
#do all named colors
|
|
65
|
+
framePage(c, 'Color Demo - RGB Space - page %d' % c.getPageNumber())
|
|
66
|
+
|
|
67
|
+
all_colors = list(reportlab.lib.colors.getAllNamedColors().items())
|
|
68
|
+
all_colors.sort() # alpha order by name
|
|
69
|
+
c.setFont('Times-Roman', 12)
|
|
70
|
+
c.drawString(72,730, 'This shows all the named colors in the HTML standard.')
|
|
71
|
+
y = 700
|
|
72
|
+
for (name, color) in all_colors:
|
|
73
|
+
c.setFillColor(colors.black)
|
|
74
|
+
c.drawString(100, y, name)
|
|
75
|
+
c.setFillColor(color)
|
|
76
|
+
c.rect(200, y-10, 300, 30, fill=1)
|
|
77
|
+
y = y - 40
|
|
78
|
+
if y < 100:
|
|
79
|
+
c.showPage()
|
|
80
|
+
framePage(c, 'Color Demo - RGB Space - page %d' % c.getPageNumber())
|
|
81
|
+
y = 700
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
c.save()
|
|
87
|
+
|
|
88
|
+
def framePage(canvas, title):
|
|
89
|
+
canvas.setFont('Times-BoldItalic',20)
|
|
90
|
+
canvas.drawString(inch, 10.5 * inch, title)
|
|
91
|
+
|
|
92
|
+
canvas.setFont('Times-Roman',10)
|
|
93
|
+
canvas.drawCentredString(4.135 * inch, 0.75 * inch,
|
|
94
|
+
'Page %d' % canvas.getPageNumber())
|
|
95
|
+
|
|
96
|
+
#draw a border
|
|
97
|
+
canvas.setStrokeColorRGB(1,0,0)
|
|
98
|
+
canvas.setLineWidth(5)
|
|
99
|
+
canvas.line(0.8 * inch, inch, 0.8 * inch, 10.75 * inch)
|
|
100
|
+
#reset carefully afterwards
|
|
101
|
+
canvas.setLineWidth(1)
|
|
102
|
+
canvas.setStrokeColorRGB(0,0,0)
|
|
103
|
+
|
|
104
|
+
if __name__ == '__main__':
|
|
105
|
+
run()
|