mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2024-12-21 19:08:24 +01:00
26cdb1d04f
Frontend traverser needs to be updated
127 lines
3.2 KiB
Markdown
127 lines
3.2 KiB
Markdown
# StirlingPDF rewrite
|
|
|
|
This is the development repository for the new StirlingPDF backend. With the power of JS, WASM & GO this will provide almost all functionality SPDF can do currently directly on the client. For automation purposes this will still provide an API to automate your workflows.
|
|
|
|
## Try the new API!
|
|
|
|
[![Run in Postman](https://run.pstmn.io/button.svg)](https://documenter.getpostman.com/view/30633786/2s9YRB1Wto)
|
|
|
|
## Understanding Workflows
|
|
|
|
Workflows define how to apply operations to a PDF, including their order and relations with eachother.
|
|
|
|
Workflows can be created via the web-ui and then exported or, if you want to brag a bit, you can create the JSON object yourself.
|
|
|
|
### Basics
|
|
|
|
To create your own, you have to understand a few key features first. You can also look at more examples our github repository.
|
|
|
|
``` json
|
|
{
|
|
"outputOptions": {
|
|
"zip": false
|
|
},
|
|
"operations": [
|
|
{
|
|
"type": "extract",
|
|
"values": {
|
|
"pagesToExtractArray": [0, 2]
|
|
},
|
|
"operations": []
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
The workflow above will extract the first (p\[0\]) and third (p\[2\]) page of the document.
|
|
|
|
You can also nest workflows like this:
|
|
|
|
``` json
|
|
{
|
|
"outputOptions": {
|
|
"zip": false
|
|
},
|
|
"operations": [
|
|
{
|
|
"type": "extract",
|
|
"values": {
|
|
"pagesToExtractArray": [0, 2]
|
|
},
|
|
"operations": [
|
|
{
|
|
"type": "impose",
|
|
"values": {
|
|
"nup": 2, // 2 pages of the input document will be put on one page of the output document.
|
|
"format": "A4L" // A4L -> The page size of the Ouput will be an A4 in Landscape. You can also use other paper formats and "P" for portrait output.
|
|
},
|
|
"operations": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
If you look at it closely, you will see that the extract operation has another nested operation of the type impose. This workflow will produce a PDF with the 1st and 2nd page of the input on one single page.
|
|
|
|
### Advanced
|
|
|
|
If that is not enought for you usecase, there is also the possibility to connect operations with eachother.
|
|
|
|
You can also do different operations to produce two different output PDFs from one input.
|
|
|
|
If you are interested in learning about this, take a look at the Example workflows provided in the repository, ask on the discord, or wait for me to finish this documentation.
|
|
|
|
## Features
|
|
|
|
### New
|
|
|
|
- [x] Client side PDF-Manipulation
|
|
- [x] Workflows
|
|
- [ ] Stateful UI
|
|
- [ ] Node based editing of them
|
|
- [ ] Propper auth using passportjs
|
|
|
|
### Functions
|
|
|
|
Current functions of spdf and their progress in this repo.
|
|
|
|
- [x] Merge
|
|
- [x] Split
|
|
- [x] Rotate
|
|
- [x] Multi-Page-Layout
|
|
- [x] Adjust page size/scale
|
|
- [ ] Organize
|
|
- [ ] Change Metadata
|
|
- [ ] Add Watermark
|
|
|
|
- [ ] Remove Pages
|
|
- [ ] Remove Blank Pages
|
|
- [ ] Detect/Split Scanned photos
|
|
|
|
- [ ] Repair
|
|
- [ ] Compress
|
|
- [ ] Flatten
|
|
- [ ] Compare/Diff
|
|
|
|
- [ ] Sign
|
|
- [ ] Sign with Certificate
|
|
- [ ] Add Password
|
|
- [ ] Remove Password
|
|
- [ ] Change Permissions
|
|
|
|
- [ ] Image to PDF
|
|
- [ ] Add image
|
|
- [ ] Extract Images
|
|
- [ ] PDF to Image
|
|
- [ ] OCR
|
|
-
|
|
- [ ] Convert file to PDF
|
|
- [ ] PDF to Text/RTF
|
|
- [ ] PDF to HTML
|
|
- [ ] PDF to XML
|
|
|
|
## Contribute
|
|
|
|
For initial instructions look at [CONTRIBUTE.md](./CONTRIBUTE.md) |