Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Tutorial in Khmer language #211

Closed
wants to merge 823 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
823 commits
Select commit Hold shift + click to select a range
a21ec6e
Minor documentation update
Lucas-C Aug 25, 2022
a3918f3
docs: add RedShy as a contributor for question (#507)
allcontributors[bot] Aug 26, 2022
d840cf1
docs: add RedShy as a contributor for design (#508)
allcontributors[bot] Aug 26, 2022
3a0fb46
docs: add dmail00 as a contributor for bug (#513)
allcontributors[bot] Aug 29, 2022
a14c93f
New embed_file() & file_attachment_annotation() methods (#506)
Lucas-C Aug 30, 2022
1949838
Refactor: Move more text processing to line_break.py & char_spacing (…
gmischler Sep 3, 2022
57d88c9
Refactor: Organize _render_styled_text_line() by fragment (#519)
gmischler Sep 5, 2022
da3022b
Adding .gitattributes - close #515
Lucas-C Sep 5, 2022
25b9ffb
Removing CRLFs from tutorial/tuto*.htm files for consistency
Lucas-C Sep 5, 2022
4d2f349
typo in docs for pdfrw fork link fixed (#522)
semaeostomea Sep 7, 2022
eb54535
Rewriting add_font() and _putfonts() using Fonttools library (#477)
RedShy Sep 7, 2022
76ab677
Minor CHANGELOG.md update
Lucas-C Sep 7, 2022
9364a2e
Minor CHANGELOG.md update
Lucas-C Sep 7, 2022
6b70150
Minor docs update
Lucas-C Sep 7, 2022
bbe3284
Extra Python 3.10 classifier added
Lucas-C Sep 7, 2022
356de1a
Fixing bgcolor usage in <table> - fix #512
Lucas-C Sep 7, 2022
dbc1114
Support Superscript, Subscript and Fractional positioning (#520)
gmischler Sep 8, 2022
dad9cfe
v2.5.7
Lucas-C Sep 8, 2022
8c29a61
fix warnings in tests (#523)
gmischler Sep 9, 2022
d6f4425
Minor CHANGELOG.md update
Lucas-C Sep 9, 2022
423706e
docs: add GerardoAllende as a contributor for code (#529)
allcontributors[bot] Sep 12, 2022
a2ed1d5
Fix pdfchecker download URL - close #530 (#533)
Lucas-C Sep 13, 2022
378a98a
Add support for monochromatic images (PIL image.mode == '1') (#527)
GerardoAllende Sep 13, 2022
b0c0973
Fix: automatic page break is never performed on an empty page (#535)
Lucas-C Sep 13, 2022
e773ac6
Minor README.md link fixup
Lucas-C Sep 13, 2022
943e397
Minor clean-ups
Lucas-C Sep 13, 2022
7a338cb
Jupyter notebook (#539)
Lucas-C Sep 14, 2022
d0bc641
Minor CHANGELOG.md update
Lucas-C Sep 14, 2022
d4bc043
Slightly improved demo notebook
Lucas-C Sep 15, 2022
54b0309
Fix CRLFs in tutorial/invoice.csv
Lucas-C Sep 15, 2022
1783074
SVG stroke-width with explicit unit, fixes #526 (#542)
gmischler Sep 16, 2022
5ff1628
add nicholasjin as a contributor (#532)
allcontributors[bot] Sep 16, 2022
d2bceb0
Minor CHANGELOG.md update
Lucas-C Sep 16, 2022
17f5431
Minor CHANGELOG.md update
Lucas-C Sep 16, 2022
db27073
add yk-jp as a contributor (#544)
allcontributors[bot] Sep 17, 2022
97a848b
Minor fixup
Lucas-C Sep 17, 2022
7a65bad
Support <dl>/<dt>/<dd> in HTML2FPDF & deprecate HTMLMixin (#543)
yk-jp Sep 19, 2022
75e28a8
Minor CHANGELOG.md update
Lucas-C Sep 19, 2022
fc763fa
Minor docs fixup
Lucas-C Sep 19, 2022
7397faf
add semaeostomea as a contributor (#551)
allcontributors[bot] Sep 20, 2022
1abef3e
add Tillrzhtgrfho as a contributor (#553)
allcontributors[bot] Sep 20, 2022
a490a4a
Fix insert_toc_placeholder() usage with footer() and {{nb}} - close #…
Lucas-C Sep 20, 2022
af12339
Specify a minimal version of fontTools in setup.py (#538)
TchilDill Sep 20, 2022
bea5d39
Switch SVG path parsing to fonttools (#545)
gmischler Sep 20, 2022
9b673eb
Minor CHANGELOG.md update
Lucas-C Sep 20, 2022
d343975
Minor CHANGELOG.md update
Lucas-C Sep 20, 2022
c3b700f
Minor docs fixups
Lucas-C Sep 21, 2022
ab7d2d7
Minor docs fixups
Lucas-C Sep 21, 2022
07fb6cc
Minor docs fixups
Lucas-C Sep 21, 2022
8d6ec73
Minor docs fixups
Lucas-C Sep 21, 2022
18a44b2
Minor docs fixups
Lucas-C Sep 21, 2022
bad198f
add darioackermann as a contributor for , and bug (#556)
allcontributors[bot] Sep 24, 2022
7cc6708
Fix endesive-based unit tests
Lucas-C Sep 28, 2022
8ad5967
Minor fixup: only embedding /Filespec /Desc when it is not empty
Lucas-C Sep 28, 2022
cc94552
Minor fixup: only embedding /Filespec /Desc when it is not empty
Lucas-C Sep 28, 2022
9131996
Use resolve_length in ShapeBuilder.rect (#558)
darioackermann Sep 28, 2022
dad0870
Inserting Jupyter notebook in mkdocs
Lucas-C Sep 28, 2022
1c68579
Removing `open()` & `close()` methods, that were only used internally…
Lucas-C Sep 28, 2022
083195f
Forbid use of `get_y()` & `local_context()` inside `unbreakable()` as…
Lucas-C Sep 28, 2022
291c057
Minor documentation improvements
Lucas-C Sep 28, 2022
7fce723
Control memory usage of some resource-intensive unit tests (#564)
Lucas-C Sep 29, 2022
ce43781
Reducing max memory usage in test_oversized.py (#565)
Lucas-C Sep 29, 2022
dc1c025
Running tests under Windows (#566)
Lucas-C Sep 29, 2022
1a8dcd6
Code cleanup & refactoring (#568)
Lucas-C Sep 29, 2022
fe6cfaf
Fixing test_load_image.py & test_oversized.py
Lucas-C Sep 30, 2022
637fdcd
fix style leaking templates, issue #570 (#571)
gmischler Oct 3, 2022
4bcd455
docs: LineBreaks.md. multi_cell() page break clarification. (#572)
MildlyOffensive Oct 4, 2022
8c9ce29
doc: add Hebrew tutorial (#575)
TzviGreenfeld Oct 6, 2022
b1f5516
add TzviGreenfeld as a contributor for doc (#576)
allcontributors[bot] Oct 6, 2022
6441229
mkdocs configuration improvements
Lucas-C Oct 6, 2022
21e1b2f
Fixing rendering of Tutorial-he.md with mkdocs
Lucas-C Oct 6, 2022
28468cc
added docs for combining fpdf with pypdf2. Renamed the doc files for …
devdev29 Oct 11, 2022
6d74352
add devdev29 as a contributor for doc (#578)
allcontributors[bot] Oct 11, 2022
653ad41
Minor documentation fixup
Lucas-C Oct 14, 2022
4f0a812
Minor documentation fixup
Lucas-C Oct 14, 2022
87cf4a6
Making add_font() 1st parameter optional (#584)
Lucas-C Oct 14, 2022
3a152cf
Minor documentation fixup
Lucas-C Oct 14, 2022
8a3ad87
Minor documentation fixup
Lucas-C Oct 14, 2022
d244b9e
📝Upgrade the French translation of the Tutorial page as in #267 (#579)
Zenigata Oct 14, 2022
59c0482
add Zenigata as a contributor for doc (#586)
allcontributors[bot] Oct 14, 2022
11800d2
Increase coverage by ~0.37% and take a few files to 100% (#590)
jmunoz94 Oct 17, 2022
99697e3
add jmunoz94 as a contributor for test (#591)
allcontributors[bot] Oct 17, 2022
7b03db3
add JDeepD as a contributor for question (#592)
allcontributors[bot] Oct 17, 2022
f3803f4
Minor documentation improvement
Lucas-C Oct 17, 2022
9c38bb6
Minor documentation improvement
Lucas-C Oct 17, 2022
29c06fa
Minor documentation improvement
Lucas-C Oct 17, 2022
c1e46a7
Fix: when using `multi_cell()` with `max_line_height` to render multi…
Lucas-C Oct 17, 2022
b7f7121
Add tutorials 4 to 6 to `Tutorial-es.md` (#594)
jmunoz94 Oct 18, 2022
0605a73
add jmunoz94 as a contributor for doc (#595)
allcontributors[bot] Oct 18, 2022
b17db02
Building linearized PDFs - initializing a linearized module (#574)
Lucas-C Oct 19, 2022
26ac9e8
Adding test/test_linearization.py as a starting point
Lucas-C Oct 19, 2022
11181be
Checking linearized test PDFs with qpdf --check-linearization
Lucas-C Oct 19, 2022
d75eda4
Fix: file attachment annotations should not be globally enclosed as /…
Lucas-C Nov 16, 2022
3884eba
add seanpmulholland as a contributor for code (#605)
allcontributors[bot] Nov 17, 2022
3a8d446
Enable correct whitespace handling in write_html() (#602)
seanpmulholland Nov 18, 2022
d046e85
add andersonhc as a contributor for question (#607)
allcontributors[bot] Nov 18, 2022
adc7151
fix zero height ln() after empty cell(), #601 (#604)
gmischler Nov 20, 2022
c3c7e17
v2.6.0
Lucas-C Nov 20, 2022
3dee587
Adding docs on using jinja & fpdf2 (#608)
Lucas-C Nov 20, 2022
be3d6b7
Minor docs fixup
Lucas-C Nov 20, 2022
c0ec2d7
add andersonhc as a contributor for code (#610)
allcontributors[bot] Nov 21, 2022
8a43f1d
Adding support for Markdown links & warn_on_tags_not_matching (#613)
Lucas-C Dec 2, 2022
de5a9e3
add yiweelan as a contributor for code (#621)
allcontributors[bot] Dec 11, 2022
614f266
Minor edit
Lucas-C Dec 11, 2022
0b40fca
Minor CHANGELOG.md edit
Lucas-C Dec 12, 2022
2d22963
add Bubbu0129 as a contributor for code (#625)
allcontributors[bot] Dec 13, 2022
00f9b2a
Increase test coverage for svg.py (#620)
yiweelan Dec 14, 2022
fa5cdf7
Forbid Pillow 9.2.0 as a dependency - fix #628 (#630)
Lucas-C Dec 19, 2022
dcb87ea
Add support to "line-height" tag in write_html() (#629)
Bubbu0129 Dec 20, 2022
31f4e56
add Bubbu0129 as a contributor for bug (#633)
allcontributors[bot] Dec 21, 2022
e02fc57
Improving add_link() (#615)
Lucas-C Dec 21, 2022
ce81bb7
Fix `ValueError: Incoherent hierarchy` that could be raised when usin…
Lucas-C Dec 21, 2022
d3df9b0
add CY-Qiu as a contributor for bug (#639)
allcontributors[bot] Dec 22, 2022
4d48095
Ensure fpdf2 compatibility with Python 3.11 (#567)
Lucas-C Dec 22, 2022
22f5e1f
add Markovvn1 as a contributor for code (#645)
allcontributors[bot] Dec 25, 2022
a961d74
Fix performance issue with adding large images with `FlateDecode` ima…
Markovvn1 Dec 25, 2022
64d8482
Fix #632: <img> without "height" attribute fails to leave enough blan…
Bubbu0129 Dec 27, 2022
0b43988
Add encryption feature (#609)
andersonhc Dec 28, 2022
0d11e9b
Publishing docs on encryption
Lucas-C Dec 28, 2022
db7a0a2
add andersonhc as a contributor for research (#650)
allcontributors[bot] Dec 28, 2022
b3c8880
Fix upper case font name support (#648)
CY-Qiu Dec 28, 2022
c19b249
Minor CHANGELOG.md update
Lucas-C Dec 28, 2022
8ea0b87
Minor CHANGELOG.md update
Lucas-C Dec 28, 2022
b55d5bd
Exposing 'dims' as a new parameter to the image() method (#651)
Lucas-C Dec 29, 2022
7435e7e
Fix bug: font content stream not encrypted (#655)
andersonhc Jan 2, 2023
ffabf55
add andersonhc as a contributor for bug (#658)
allcontributors[bot] Jan 2, 2023
8081eea
Skew function (#656)
erap129 Jan 2, 2023
72c23f0
add erap129 as a contributor for code (#659)
allcontributors[bot] Jan 2, 2023
f5079fd
Minor docs/CHANGELOG edits
Lucas-C Jan 2, 2023
0a1b958
Pleasing black
Lucas-C Jan 2, 2023
8a88954
Additional docs
Lucas-C Jan 3, 2023
050e6ff
Show warning if font is missing glyphs (#661)
andersonhc Jan 6, 2023
343eb74
v2.6.1
Lucas-C Jan 13, 2023
48ff5eb
Adapting signing unit tests to latest endesive release
Lucas-C Jan 13, 2023
479afb8
Fixing FPDF.add_link()
Lucas-C Jan 13, 2023
8b89ca7
Raising an error when trying to add a link with no page number
Lucas-C Jan 13, 2023
602389a
Minor docs update
Lucas-C Jan 18, 2023
d143f9d
Add Simplified Chinese tutorial (#666)
Bubbu0129 Jan 20, 2023
67a3005
add Bubbu0129 as a contributor for translation (#667)
allcontributors[bot] Jan 21, 2023
59b7271
Removing warning on HTML2FPDF_CLASS being deprecated (#671)
Lucas-C Jan 27, 2023
098168b
add SfinxV as a contributor for bug (#673)
allcontributors[bot] Jan 28, 2023
61b7348
add bramantoleksono as a contributor for bug (#674)
allcontributors[bot] Jan 28, 2023
25b8452
Update contributors-map-small.png
Lucas-C Jan 28, 2023
6b0aab8
fix encryption with hyperlink bug (#675)
andersonhc Jan 30, 2023
97c9902
Minor CHANGELOG.md update
Lucas-C Jan 30, 2023
87673e8
Minor CHANGELOG.md update
Lucas-C Jan 31, 2023
7e45714
Making all `TitleStyle` constructor parameters effectively optional -…
Lucas-C Feb 1, 2023
a615f4d
add TheNerdy907 as a contributor for bug (#677)
allcontributors[bot] Feb 1, 2023
ebd2b17
Pleasing latest black version
Lucas-C Feb 1, 2023
e87087f
Including emoji contributions to contributors map
Lucas-C Feb 3, 2023
4be83f4
Pleasing pylint
Lucas-C Feb 3, 2023
5c027cc
Minor docs update
Lucas-C Feb 6, 2023
f75df05
New FPDF.preload_image() + embedding SVG images is now more robust (#…
Lucas-C Feb 14, 2023
ac60b07
add eroux as a contributor for bug (#688)
allcontributors[bot] Feb 14, 2023
367b5bb
Fix metadata encoding (#689)
Lucas-C Feb 14, 2023
1f0e977
Adding new optional parameter keep_aspect_ratio=True to FPDF.image()
Lucas-C Feb 14, 2023
e4b5b3e
Improving error message if fpdf module is instantiated (#690)
Lucas-C Feb 15, 2023
61348c5
add eroux as a contributor for ideas (#694)
allcontributors[bot] Feb 16, 2023
b113acb
fix for #691 (#695)
eroux Feb 17, 2023
a1a1cfc
add eroux as a contributor for code (#698)
allcontributors[bot] Feb 17, 2023
b8a51f5
[QA] Adding --trace-malloc (#699)
Lucas-C Feb 19, 2023
0f007cf
[QA] Adding --final-rss-usage (#702)
Lucas-C Feb 20, 2023
907052c
Draft: debugging memory usage (#704)
Lucas-C Feb 21, 2023
5a2cb13
fix for #693 (#706)
eroux Feb 23, 2023
2f062b2
add eroux as a contributor for question (#708)
allcontributors[bot] Feb 24, 2023
0459677
Add mention PyMuPDF in docs as an alternative lib
Lucas-C Feb 27, 2023
e9dfb18
add ICC profiles to PDFs (#709)
eroux Feb 27, 2023
1093622
Pleasing VeraPDF / fixing ICC profiles insertion / warn on CMYK not s…
Lucas-C Feb 28, 2023
ca2f8b0
Support character based line wrapping (#649) (#657)
gmischler Feb 28, 2023
89c528d
Font fallback (#669)
andersonhc Mar 1, 2023
caab96f
Fixing signing unit tests - expired certificates (#713)
Lucas-C Mar 3, 2023
3988367
Added an example for using plotly with fpdf2 (#714)
msalem99 Mar 8, 2023
587154e
add msalem99 as a contributor for doc (#716)
allcontributors[bot] Mar 8, 2023
f8de21c
Pleasing Pylint
Lucas-C Mar 8, 2023
35d8e7a
Reducing fonttools memory usage by 10MiB by passing lazy=True to TTFo…
Lucas-C Mar 10, 2023
6dc5f5e
add ruiz-manuel as a contributor for bug (#724)
allcontributors[bot] Mar 15, 2023
fd4250f
More memory-tracking tools (#721)
Lucas-C Mar 16, 2023
6a73797
Fix for set_fallback_fonts() when markdown=True (#712)
Lucas-C Mar 16, 2023
b506cc6
Fixing CI pipeline (#725)
Lucas-C Mar 17, 2023
9ff9569
Introducing semgrep (#728)
Lucas-C Mar 21, 2023
3f44d4b
Fix bug with set_link() (#730)
Lucas-C Mar 24, 2023
aba7409
add nsimonovici as a contributor for bug (#731)
allcontributors[bot] Mar 24, 2023
98f46b1
add hackinteach as a contributor for bug (#735)
allcontributors[bot] Mar 27, 2023
2b0bb59
Fix outline encryption (#734)
Lucas-C Mar 27, 2023
f371035
Code refactoring (#736)
Lucas-C Mar 27, 2023
0579097
Implement FPDF.table() - close #701 & #723 (#703)
Lucas-C Mar 27, 2023
eda9e0b
v2.7.0
Lucas-C Mar 27, 2023
7bc1fa2
Minor fixups
Lucas-C Mar 27, 2023
128bb54
Renaming FontStyle to FontFace (#737)
Lucas-C Mar 27, 2023
60f5104
v2.7.1
Lucas-C Mar 27, 2023
a856734
Bangla Tutorial Added (#738)
ssavi-ict Mar 27, 2023
615db58
add ssavi-ict as a contributor for translation (#739)
allcontributors[bot] Mar 27, 2023
ee7e9ad
Supporting percent width/height in <rect> + adding some __slots__ to …
Lucas-C Mar 30, 2023
338977a
Adding .pre-commit-config.yaml (#745)
Lucas-C Mar 31, 2023
88b41b7
[Added] Doc on generating Code128 Barcode (#746)
ssavi-ict Mar 31, 2023
a10bf6e
add ssavi-ict as a contributor for doc (#747)
allcontributors[bot] Mar 31, 2023
9453464
Minor docs improvements
Lucas-C Apr 1, 2023
e316f2a
add aeris07 as a contributor for bug (#751)
allcontributors[bot] Apr 3, 2023
15053f4
Fix bug when using custom fonts with table() (#750)
Lucas-C Apr 3, 2023
71b1cfb
v2.7.2
Lucas-C Apr 3, 2023
3f72a7b
v2.7.3
Lucas-C Apr 3, 2023
f9cf1b1
Minor docs fixups
Lucas-C Apr 3, 2023
b43f0ce
Fixing ModuleNotFoundError: No module named 'pandas.util.testing'
Lucas-C Apr 3, 2023
8dfe741
[CI fixup] Extending test_charmap_first_999_chars() unit test timeout…
Lucas-C Apr 3, 2023
9189ecf
Addind announcement on move to @py-pdf
Lucas-C Apr 3, 2023
b30b8d3
[CI] Replacing pytest-timeout by a better system (#754)
Lucas-C Apr 3, 2023
eb2b0af
[CI] Restoring memory checks in unit tests (#755)
Lucas-C Apr 4, 2023
1a6aef2
Minor docs update
Lucas-C Apr 7, 2023
9c21ad3
Minor docs fixup
Lucas-C Apr 7, 2023
2a0b280
Minor docs fixup
Lucas-C Apr 7, 2023
f3dadb3
add KamarulAdha as a contributor for doc (#761)
allcontributors[bot] Apr 10, 2023
393580e
DOC: Chart Using PyGal added (#762)
ssavi-ict Apr 12, 2023
e6e08b6
Supporting bytes as input to FPDF.image() + minor docs refactoring (#…
Lucas-C Apr 12, 2023
be36d95
write_html: do not style header row if no <th> is present - fix #740 …
Lucas-C Apr 12, 2023
af8c653
Broken Link Fixes (#765)
ssavi-ict Apr 12, 2023
f6b8030
Minor docs improvements
Lucas-C Apr 12, 2023
469fd0a
Minor docs improvements
Lucas-C Apr 12, 2023
a3cf95d
Added FastAPI documentation. Send PDF via SMTP (#760)
KamarulAdha Apr 12, 2023
01816de
Minor docs update
Lucas-C Apr 12, 2023
08f8e4c
Minor docs update
Lucas-C Apr 12, 2023
31f259b
Minor docs update
Lucas-C Apr 12, 2023
253cfe0
Minor docs update
Lucas-C Apr 14, 2023
d4b3745
Close #91
Lucas-C Apr 14, 2023
1910c31
Adding unit test for <table> spanning over page break
Lucas-C Apr 14, 2023
28edd82
Exclude tutorials in non-English language from PDF manual - close #381
Lucas-C Apr 14, 2023
8763cad
Handling some edge cases with table() (#768)
Lucas-C Apr 19, 2023
851eaa3
add Valerus5685 as a contributor for bug (#772)
allcontributors[bot] Apr 20, 2023
861db30
add ssavi-ict as a contributor for question (#774)
allcontributors[bot] Apr 20, 2023
bdd4638
Fixing image insertion in tables (#773)
Lucas-C Apr 20, 2023
c55f1e3
Introducing pre_code_font optional parameter for FPDF.write_html() (#…
Lucas-C Apr 21, 2023
e79eeff
Add cmyk support (#756)
devdev29 Apr 26, 2023
4bd7479
add devdev29 as a contributor for code (#779)
allcontributors[bot] Apr 26, 2023
33b9444
Update verapdf-ignore.json
Lucas-C Apr 26, 2023
4d1dd47
v2.7.4
Lucas-C Apr 28, 2023
687ae11
Hardening Pylint config (#780)
Lucas-C May 2, 2023
37fc30f
Update Tutorial-zh.md (#782)
Bubbu0129 May 3, 2023
063a10b
add sebastiantia as a contributor for code (#784)
allcontributors[bot] May 6, 2023
47e910f
Mirror function (#783)
sebastiantia May 8, 2023
e208ab4
Minor fixups
Lucas-C May 8, 2023
4afcf4c
Really minor doc fixup
Lucas-C May 8, 2023
4827901
New feature: table gutter (#787)
Lucas-C May 31, 2023
5f4fea3
Create Tutorial-km.md
kuth-chi Jun 1, 2023
ba7d27a
add 1nv as a contributor for bug (#795)
allcontributors[bot] Jun 1, 2023
6779a1f
Bugfix: allowing images path starting with 'data' to be passed to FPD…
Lucas-C Jun 1, 2023
567a4bd
Minor fixup in docs
Lucas-C Jun 1, 2023
d8ed89c
add kuth-chi as a contributor for translation (#802)
allcontributors[bot] Jun 5, 2023
892c716
add RubendeBruin as a contributor for code (#803)
allcontributors[bot] Jun 5, 2023
940ec1f
Minor code comment fixup + extra unit test
Lucas-C Jun 5, 2023
3b07d9c
Refactor fonts from dict to classes (#798)
andersonhc Jun 5, 2023
9fe6c2d
Merge branch 'PyFPDF:master' into patch-1
kuth-chi Jun 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
925 changes: 925 additions & 0 deletions .all-contributorsrc

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .banditrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
skips:
# Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
# => OK, we don't care though
- B101
16 changes: 16 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# .coveragerc to control coverage.py
[run]
branch = True

[report]
include =
fpdf/*.py
fpdf/**/*.py

# Regexes for lines to exclude from consideration
exclude_lines =
# Don't complain about missing debug-only code:
def __repr__

# Don't complain if non-runnable code isn't run:
if __name__ == .__main__.:
14 changes: 14 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Enforce Unix newlines
* text eol=lf

# Binary files
*.pdf binary
*.p12 binary
*.otf binary
*.ttf binary
*.TTF binary
*.bmp binary
*.jpg binary
*.gif binary
*.png binary
*.webp binary
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: Bug report
about: Report some unexpected behaviour to help us improve
title: ''
labels: bug
assignees: ''
---
<!--
Hi there! Thank you for wanting to make fpdf2 better 😉.

Please perform a quick search first, in order to check if your problem has already been reported:
https://github.com/PyFPDF/fpdf2/issues
-->

Describe the bug

**Error details**
If an exception is raised, it is very important that you provide the full error message.
Otherwise members of the fpdf2 community won't be able to help you with your problem.

**Minimal code**
Please include some minimal Python code reproducing your issue:
```python
from fpdf import FPDF

pdf = FPDF()
...
```
If you don't know how to build a minimal reproducible example, please check this tutorial: https://stackoverflow.com/help/minimal-reproducible-example

**Environment**
Please provide the following information:
* **Operating System**: Windows, Mac OSX, Linux flavour...
* **Python version**: you can get this information with `python --version`
* **`fpdf2` version used**: if you installed it with `pip`, you can get this information in `pip freeze` output

<!-- Bonus / recommended:

Often, there are bugfixes & other changes on fpdf2 git repo `master` branch
that have not been released yet. They are listed in the ChangeLog:
https://github.com/PyFPDF/fpdf2/blob/master/CHANGELOG.md

Hence, please check that your bug is still present using the latest version of fpdf2 from the git repository,
by installing it this way:

pip install git+https://github.com/PyFPDF/fpdf2.git@master

-->
9 changes: 9 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: false
contact_links:
- name: 💬 Start a discussion
url: https://github.com/PyFPDF/fpdf2/discussions/new
about: Informal discussion about the project organization, considerations that do not expect a definitive answer, etc.
# - name: Security issue
# url: security@...
# about: Do not report security issues publicly. Email our security contact.
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
<!--
Hi there! Thank you for wanting to make fpdf2 better 😉.

Before you submit this, make sure that this feature wasn't already requested,
or if it is not already implemented in the master branch but not released yet:
https://github.com/PyFPDF/fpdf2/blob/master/CHANGELOG.md
-->

**Please explain your intent**
Describe what you want to achieve.

**Describe the solution you'd like**
A clear and concise description of what you want to happen.
Please also mention any alternative solutions or features you've considered.

**Additional context**
Add any other context, code snippet or screenshots about the feature request.
You can also mention if you are willing to contribute a PR yourself to provide this feature.
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: I have a question
about: Anything that is not a bug report or a feature request
title: ''
labels: question
assignees: ''
---
<!--
Hi there! Thank you for reaching out and stepping in fpdf2 users community 😉.

Before submitting your question, please check:
* that it is not covered by the documentation: https://pyfpdf.github.io/fpdf2/
* that it has not already been asked: https://github.com/PyFPDF/fpdf2/issues
-->
41 changes: 41 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!--
Thanks for your interest in the project. Bugs filed and PRs submitted are appreciated!

Some guidelines are provided like this, in HTML comments, to expedite the code review before merging your contribution.

First, please make sure that you have read the documentation page on fpdf2 development:
https://pyfpdf.github.io/fpdf2/Development.html

If you're new to contributing to open source projects,
you might find this free video course helpful: http://kcd.im/pull-request
-->

<!-- What changes are being made? (What feature/bug is being fixed here?) -->

e.g. Fixes #0 <!-- This will automatically close issue #0 once the PR is merged: https://help.github.com/en/articles/closing-issues-using-keywords -->

<!-- Have you done all of these things? -->
**Checklist**:

<!-- To check an item, place an "x" in the box like so: "- [x] Item description"
Add "N/A" to the end of each line that's irrelevant to your changes -->

- [ ] The GitHub pipeline is OK (green), <!-- The maintainers will trigger it if this is your 1st contribution -->
meaning that both `pylint` (static code analyzer) and `black` (code formatter) are happy with the changes of this PR.

- [ ] A unit test is covering the code added / modified by this PR

- [ ] This PR is ready to be merged <!-- In your opinion, can this be merged as soon as it's reviewed? Else, this can be turned into a Draft PR -->

- [ ] In case of a new feature, docstrings have been added, with also some documentation in the `docs/` folder

- [ ] A mention of the change is present in `CHANGELOG.md`

<!-- Feel free to add additional comments, and to ask questions if some of those guidelines are unclear to you! -->

<!--
Once a PR is merged, maintainers will add your name to the contributors table in README.md.
If they forget, or you do not wish this to happen, please mention it.
-->

By submitting this pull request, I confirm that my contribution is made under the terms of the [GNU LGPL 3.0 license](https://github.com/PyFPDF/fpdf2/blob/master/LICENSE).
108 changes: 108 additions & 0 deletions .github/workflows/continuous-integration-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: build

on: # cf. https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662
push:
branches:
- master
pull_request:
branches:
- master

jobs:
test:
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
platform: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }} 🔧
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies ⚙️
if: matrix.platform == 'ubuntu-latest'
run: sudo apt-get update && sudo apt-get install ghostscript libjpeg-dev
- name: Install qpdf ⚙️
if: matrix.platform == 'ubuntu-latest' && matrix.python-version != '3.9'
# We run the unit tests WITHOUT qpdf for a single parallel execution / Python version:
run: sudo apt-get update && sudo apt-get install qpdf
- name: Install Python dependencies ⚙️
run: |
python -m pip install --upgrade pip setuptools wheel
pip install --upgrade . -r test/requirements.txt -r docs/requirements.txt -r contributors/requirements.txt
- name: Statically checking code 🔎
if: matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
run: |
pylint fpdf test tutorial/tuto*.py
bandit -c .banditrc.yml -r contributors/ fpdf/ tutorial/
semgrep scan --config auto --lang=py --error --strict --exclude-rule=python.lang.security.insecure-hash-function.insecure-hash-function fpdf
- name: Ensure code has been autoformatted with black 🖌️
if: matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
run: black --check .
- name: Checking all PDF samples ☑
if: matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
run: |
# Using qpdf
find . -name '*.pdf' | xargs -n 1 qpdf --check --password=fpdf2
# Using Datalogics PDF Checker:
scripts/install-pdfchecker.sh
find . -name '*.pdf' | xargs -n 1 scripts/pdfchecker.py
scripts/pdfchecker.py # printing aggregated report
# Using VeraPDF:
scripts/install-verapdf.sh
find . -name '*.pdf' | xargs -n 1 scripts/verapdf.py
scripts/verapdf.py # printing aggregated report
- name: Running tests ☑
env:
CHECK_EXEC_TIME: ${{ matrix.python-version == '3.9' && 'test-enabled' || '' }}
CHECK_RSS_MEMORY: ${{ matrix.python-version == '3.11' && 'test-enabled' || '' }}
run: |
# Ensuring there is no `generate=True` left remaining in calls to assert_pdf_equal:
grep -IRF generate=True test/ && exit 1
# Executing all tests:
pytest -vv --trace-memory-usage
- name: Uploading coverage report to codecov.io ☑
if: matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
run: bash <(curl -s https://codecov.io/bash)
- name: Generating HTML documentation 🏗️
# As build_contributors_html_page.py can hang due to GitHub rate-limiting,
# we only execute this on master for now. And it should always be executed for one Python version only.
if: github.ref == 'refs/heads/master' && matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mkdir -p public/
# Setting PDF manual version:
sed -i "s/author:.*/author: v$(python setup.py -V 2>/dev/null)/" mkdocs.yml
cp tutorial/notebook.ipynb docs/
mkdocs build
pdoc --html -o public/ fpdf --config "git_link_template='https://github.com/PyFPDF/fpdf2/blob/{commit}/{path}#L{start_line}-L{end_line}'"
cd contributors/ && PYTHONUNBUFFERED=1 ./build_contributors_html_page.py PyFPDF/fpdf2
cp -t ../public/ contributors.html contributors-map-small.png
- name: Deploy documentation 🚀
# GitHub Pages deployment should not be done for all Python versions,
# otherwise commits will conflict on the gh-pages branch:
if: github.ref == 'refs/heads/master' && matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: public/
- name: Publish on Pypi 🚀
# Similarly, we only publish a new version on Pypi once per pipeline running on master:
if: github.ref == 'refs/heads/master' && matrix.python-version == '3.10' && matrix.platform == 'ubuntu-latest'
run: |
echo Versions already released on Pypi: $(curl -Ls 'https://pypi.org/pypi/fpdf2/json' | jq -r '.releases|keys[]')
echo Current code version: $(python setup.py -V)
# Checking if current code version has already been released:
curl -Ls 'https://pypi.org/pypi/fpdf2/json' | jq -r '.releases|keys[]' | grep "^$(python setup.py -V)\$" && exit 0
# No? Then performing a release on Pypi now:
pip install --upgrade twine wheel
python setup.py sdist bdist_wheel
twine check dist/*
twine upload dist/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.FPDF2_GITHUB_ACTION_PUBLISH }}
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,34 @@
# my files
.env

# codecov.io
coverage.xml

htmlcov
public
tutorial/invoice.pdf
PDF_Checker/
verapdf/
pdfchecker-aggregated.json
verapdf-aggregated.json

contributors/contributors.html

*.py[cod]

# C extensions
*.so

# virtualenv
include/
local/

# vscode
.vscode

# Packages
*.egg
.eggs
*.egg-info
dist
build
Expand All @@ -20,6 +44,7 @@ lib64

# Installer logs
pip-log.txt
pip-selfcheck.json

# Unit test / coverage reports
.coverage
Expand All @@ -33,3 +58,10 @@ nosetests.xml
.mr.developer.cfg
.project
.pydevproject

# Idea
.idea

# Vim backup and swap files
*.*~
*.swp
10 changes: 0 additions & 10 deletions .hgtags

This file was deleted.

41 changes: 41 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
exclude: ^(\.[^/]*cache(__)?/.*|(.*/)?\.coverage)$
repos:
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.1
hooks:
- id: remove-crlf
- id: remove-tabs
- id: chmod
args: ['644']
exclude: (^(contributors|docs|scripts|tutorial)/.*\.py|\.sh)$
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-merge-conflict
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
- repo: https://github.com/psf/black
rev: 23.3.0
hooks:
- id: black
- repo: local
hooks:
- id: no-print-in-sources
name: Ensure no print() statement appears in fpdf2 sources
language: pygrep
entry: print\(
files: ^fpdf/.*\.py$
exclude: fpdf/util.py
- id: no-generate-true
name: Ensure no generate=True is left in a call to assert_pdf_equal()
language: pygrep
entry: generate=True
files: ^test/.*\.py$
- id: pylint
name: pylint
# 3x faster than the official pylint hook, and has no issue with imports
# (tested with: time pre-commit run pylint --all-files)
language: system
entry: pylint
files: ^(fpdf/|test/|tutorial/tuto).*\.py$
Loading