Have you ever needed to share a bank statement with someone? Maybe you've needed a user of your project to share one with you for troubleshooting.

I hit this exact problem. I've been building an extensible tool to convert UK bank statements into a relational database, but I only have access to statements from my own bank. How can I get access to other bank statements without asking people to send me sensitive, personally identifiable information?

I needed anonymised bank statements that retained their layout and font encoding so the statements could be processed in exactly the same way as the original. I also wanted to scramble everything by default, but enable the protection of dates and transaction types. Finally, it would be helpful if scrambling multiple statements from the same account could be configured to always scramble to the same fake value!

So I built a Python tool that does it properly — scrambles the sensitive data while keeping the PDF looking exactly the same.

The problem with PDF redaction