PDF Web Edit is a web-based application for manipulating PDF files. It's main purpose is to pre-process documents before they are imported into a Document Management System (DMS) such as Paperless (-ng and -ngx) or stored in a directory based strucutre.
βοΈ List all PDF documents in a directory
βοΈ Search by document names
βοΈ Sort by name, creation and modified date
βοΈ Preview pages
βοΈ Delete pages
βοΈ Rotate pages
βοΈ Reorder pages
βοΈ Split pages
βοΈ Merge pages
βοΈ Multi-select for quick manipulation
βοΈ Delete document
βοΈ Unlock encrypted/password protected documents
βοΈ Batch actions (Save, Save As, Archive, etc)
βοΈ Move documents to outbox directory
βοΈ Multilingual support
βοΈ Dark mode
Light | Dark |
---|---|
The application works on the assumption that all your documents are pushed into an inbox folder ready for processing. Documents could come from a variety of sources such as a network scanner or another tool doing other pre-processing (e.g. OCR).
The user can then process those files through the web-based user interface. You can manipulate a file (e.g. rotate a page, remove blank pages or reorder pages) before saving, or deleting the document. Any modifications that you make are copied into an edited version of the original document (thus not making any changes to the original). This allows us to undo/restore the original document if a page is accidentally removed or file corruption occurs.
Saving the document will move the file from the inbox folder into the outbox folder. Whilst deleting a document will move it into the archive folder (this behaviour is configurable in the conf.json file if you would prefer to permanently delete the file rather than move it to the archive directory).
- Inbox - Directory where files are put ready to be processed.
- Outbox - Directory where files are moved to after the user presses save.
- Archive - Directory where files that are deleted are moved to.
- Config - Directory where the conf.json file of user configuration options is stored.
Whilst you could build this project and drop the files into an IIS application, the simplest method is using Docker.
- Pull the image:
docker pull lbrowning/pdf-web-edit
- Run a container (replacing the host paths with your desired paths):
docker run -p 10000:80 -v /host/config:/config -v /host/inbox:/inbox -v /host/outbox:/outbox -v /host/archive:/archive lbrowning/pdf-web-edit:latest
Congratulations, PDF Web Edit should now be running on port 10000!
A configuration file named conf.json is created in the Config directory on first launch. You can edit the config through the web based interface (cog on the right hand side of the navigation) or you can be modify the config file to change any settings.
Please note: if you edit the config file manually the application must be restarted for any changes to take affect!
PDF Web Edit has been developed using Visual Studio. If you would like to run the project yourself follow these simple steps;
- Node.js (I'm using v14.15.4 currently)
- Visual Studio 2022
- Download the code.
- Open the solution in Visual Studio.
- Edit the appsettings.Development.json to use your local paths.
- Restore nuget packages and node modules.
- Press Run!
Optionally, to build your own Docker image, make sure you have Docker Desktop installed, then right click on the Dockerfile in Visual Studio and click Build Docker Image
.
Contributions are very welcome! Please feel free to to fork the repository and create a pull request for any new features. Alternatively, you can also open a discussion if you would like to discuss anything to do with the project. Feature requests are also encouraged so the community can vote on the best ideas.
The project uses a number of 3rd party libraries for manipulating the PDF documents;