Thank you for your interest in pdfplumber! Before submitting an issue or filing a pull request, please consult the brief notes and instructions below.
- If you are troubleshooting a specific PDF and have not identified a clear bug, please open a discussion instead of an issue.
- Malformed PDFs can often cause problems that cannot be directly fixed in
pdfplumber. For that reason, please try repairing your PDF using Ghostscript before filing a bug report. To do so, rungs -o repaired.pdf -sDEVICE=pdfwrite original.pdf, replacingoriginal.pdfwith your PDF's actual filename. - If your issue relates to text not being displayed correctly, please compare the output to
pdfminer.six'spdf2txtcommand. If you're seeing the same problems there, please consult that repository instead of this one, becausepdfplumberdepends onpdfminer.sixfor text extraction. - Please do fill out all requested sections of the issue template; doing so will help the maintainers and community more efficiently respond.
- If you would like to propose a change that is more complex than a simple bug-fix, please first open a discussion. If you are submitting a simple bugfix, typo correction, et cetera, feel free to open a pull request directly.
- PRs should be submitted against the
developbranch only. - PRs should contain one or more tests that support the changes. The tests should pass with the new code but fail on the commits prior. For guidance, see the existing tests in the
tests/directory. To execute the tests, runmake testsorpython -m pytest. - Python code in PRs should conform to
psf/black,isort, andflake8formatting guidelines. To automatically reformat your code accordingly, runmake format. To test the formatting andflake8compliance, runmake lint. - Please add yourself to the list of contributors.
- Please also update the CHANGELOG.md.