As I moved to another country few months ago, I always need to do some paperwork and I ran into an interesting problem: the bank sent me a form in a PDF, I filled it with Adobe DC and sent it back. Two days laters, the response was: "for security reasons, we do not accept digitally signed PDF". I do not have a printer nor a scanner...

Fake it until you make it

The first time, I was very brave, went to my local library, paid to print my two pages signed them with a pen, rescanned and finally sent them. It took me an hour but ok, I can tolerate it once.
Then it happened again! Another administration had the same problem!
I figured that I was not the only one to have this problem and found a cool website https://www.scanyourpdf.com/ which fakes the awful quality of a scanner on your nice-looking filled PDF form. Once transformed, the administration believes that this is actually scanned and therefore completely legit!

The original PDF vs the faked scanned one

What about privacy?

However, this service works perfectly for trivial forms but we do not want to share our secrets with some random website. It has to run locally.

As a local website

For this reason, I dug a bit and found that the website is open source and lives here (even made a PR to clarify how you can start the website).
After few minutes of back and forth, I was able to get my clone of the website running and I was sure that my data will stay on my machine.

Up and running on my machine! Whoop whoop!

As a command

As a developer I do not attach much value about the drag and drop and the nice website because I intend to use the software as a command.
I found another promising repository derived from the website project mentioned earlier and the repo is here.
This works well: install the dependencies (imagemagick and ghostscript) and you get the same result in the terminal!
Just run:

pip install pdf-to-scan
pdf-to-scan in.pdf