diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index 6798de11..2952c5b1 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -28,15 +28,6 @@ jobs: - name: Get version number id: versionNumber run: echo "::set-output name=versionNumber::$(./gradlew printVersion --quiet | tail -1)" - - - name: Commit and push if it changed - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - git add -A - git diff --quiet && git diff --staged --quiet || git commit -m "Updated Swagger documentation" - git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git - git push - name: Upload Swagger Documentation to SwaggerHub run: | diff --git a/SwaggerDoc.json b/SwaggerDoc.json deleted file mode 100644 index 39db60b4..00000000 --- a/SwaggerDoc.json +++ /dev/null @@ -1,2329 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Stirling PDF API", - "description": "API documentation for all Server-Side processing.\nPlease note some functionality might be UI only and missing from here.", - "version": "0.10.0" - }, - "servers": [ - { - "url": "http://localhost:8080", - "description": "Generated server url" - } - ], - "paths": { - "/update-metadata": { - "post": { - "tags": [ - "metadata-controller" - ], - "summary": "Update metadata of a PDF file", - "description": "This endpoint allows you to update the metadata of a given PDF file. You can add, modify, or delete standard and custom metadata fields.", - "operationId": "metadata", - "parameters": [ - { - "name": "deleteAll", - "in": "query", - "description": "Delete all metadata if set to true", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "author", - "in": "query", - "description": "The author of the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "creationDate", - "in": "query", - "description": "The creation date of the document (format: yyyy/MM/dd HH:mm:ss)", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "creator", - "in": "query", - "description": "The creator of the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "keywords", - "in": "query", - "description": "The keywords for the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "modificationDate", - "in": "query", - "description": "The modification date of the document (format: yyyy/MM/dd HH:mm:ss)", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "producer", - "in": "query", - "description": "The producer of the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "subject", - "in": "query", - "description": "The subject of the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "The title of the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "trapped", - "in": "query", - "description": "The trapped status of the document", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "allRequestParams", - "in": "query", - "required": true, - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to update metadata", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/split-pages": { - "post": { - "tags": [ - "split-pdf-controller" - ], - "summary": "Split a PDF file into separate documents", - "description": "This endpoint splits a given PDF file into separate documents based on the specified page numbers or ranges. Users can specify pages using individual numbers, ranges, or \u0027all\u0027 for every page.", - "operationId": "splitPdf", - "parameters": [ - { - "name": "pages", - "in": "query", - "description": "The pages to be included in separate documents. Specify individual page numbers (e.g., \u00271,3,5\u0027), ranges (e.g., \u00271-3,5-7\u0027), or \u0027all\u0027 for every page.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be split", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/scale-pages": { - "post": { - "tags": [ - "scale-pages-controller" - ], - "summary": "Change the size of a PDF page/document", - "description": "This operation takes an input PDF file and the size to scale the pages to in the output PDF file.", - "operationId": "scalePages", - "parameters": [ - { - "name": "pageSize", - "in": "query", - "description": "The scale of pages in the output PDF. Acceptable values are A0-A10, B0-B9, LETTER, TABLOID, LEDGER, LEGAL, EXECUTIVE.", - "required": true, - "schema": { - "type": "String", - "enum": [ - "A0", - "A1", - "A2", - "A3", - "A4", - "A5", - "A6", - "A7", - "A8", - "A9", - "A10", - "B0", - "B1", - "B2", - "B3", - "B4", - "B5", - "B6", - "B7", - "B8", - "B9", - "LETTER", - "TABLOID", - "LEDGER", - "LEGAL", - "EXECUTIVE" - ] - } - }, - { - "name": "scaleFactor", - "in": "query", - "description": "The scale of the content on the pages of the output PDF. Acceptable values are floats.", - "required": true, - "schema": { - "type": "float" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/rotate-pdf": { - "post": { - "tags": [ - "rotation-controller" - ], - "summary": "Rotate a PDF file", - "description": "This endpoint rotates a given PDF file by a specified angle. The angle must be a multiple of 90.", - "operationId": "rotatePDF", - "parameters": [ - { - "name": "angle", - "in": "query", - "description": "The angle by which to rotate the PDF file. This should be a multiple of 90.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "example": 90 - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The PDF file to be rotated", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/repair": { - "post": { - "tags": [ - "repair-controller" - ], - "summary": "Repair a PDF file", - "description": "This endpoint repairs a given PDF file by running Ghostscript command. The PDF is first saved to a temporary location, repaired, read back, and then returned as a response.", - "operationId": "repairPdf", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be repaired", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/remove-password": { - "post": { - "tags": [ - "password-controller" - ], - "summary": "Remove password from a PDF file", - "description": "This endpoint removes the password from a protected PDF file. Users need to provide the existing password.", - "operationId": "removePassword", - "parameters": [ - { - "name": "password", - "in": "query", - "description": "The password of the PDF file", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file from which the password should be removed", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/remove-pages": { - "post": { - "tags": [ - "rearrange-pages-pdf-controller" - ], - "summary": "Remove pages from a PDF file", - "description": "This endpoint removes specified pages from a given PDF file. Users can provide a comma-separated list of page numbers or ranges to delete.", - "operationId": "deletePages", - "parameters": [ - { - "name": "pagesToDelete", - "in": "query", - "description": "Comma-separated list of pages or page ranges to delete, e.g., \u00271,3,5-8\u0027", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file from which pages will be removed", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/remove-blanks": { - "post": { - "tags": [ - "blank-page-controller" - ], - "summary": "Remove blank pages from a PDF file", - "description": "This endpoint removes blank pages from a given PDF file. Users can specify the threshold and white percentage to tune the detection of blank pages.", - "operationId": "removeBlankPages", - "parameters": [ - { - "name": "threshold", - "in": "query", - "description": "The threshold value to determine blank pages", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10 - }, - "example": 10 - }, - { - "name": "whitePercent", - "in": "query", - "description": "The percentage of white color on a page to consider it as blank", - "required": false, - "schema": { - "type": "number", - "format": "float", - "default": 99.9 - }, - "example": 99.9 - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file from which blank pages will be removed", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/rearrange-pages": { - "post": { - "tags": [ - "rearrange-pages-pdf-controller" - ], - "summary": "Rearrange pages in a PDF file", - "description": "This endpoint rearranges pages in a given PDF file based on the specified page order or custom mode. Users can provide a page order as a comma-separated list of page numbers or page ranges, or a custom mode.", - "operationId": "rearrangePages", - "parameters": [ - { - "name": "pageOrder", - "in": "query", - "description": "The new page order as a comma-separated list of page numbers, page ranges (e.g., \u00271,3,5-7\u0027), or functions in the format \u0027an+b\u0027 where \u0027a\u0027 is the multiplier of the page number \u0027n\u0027, and \u0027b\u0027 is a constant (e.g., \u00272n+1\u0027, \u00273n\u0027, \u00276n-5\u0027)", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "customMode", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "REVERSE_ORDER", - "DUPLEX_SORT", - "BOOKLET_SORT", - "ODD_EVEN_SPLIT", - "REMOVE_FIRST", - "REMOVE_LAST", - "REMOVE_FIRST_AND_LAST" - ] - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to rearrange pages", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/pdf-to-xml": { - "post": { - "tags": [ - "convert-pdf-to-office" - ], - "summary": "Convert PDF to XML", - "description": "This endpoint converts a PDF file to an XML file.", - "operationId": "processPdfToXML", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be converted to an XML file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/pdf-to-word": { - "post": { - "tags": [ - "convert-pdf-to-office" - ], - "summary": "Convert PDF to Word document", - "description": "This endpoint converts a given PDF file to a Word document format.", - "operationId": "processPdfToWord", - "parameters": [ - { - "name": "outputFormat", - "in": "query", - "description": "The output Word document format", - "required": true, - "schema": { - "type": "string", - "enum": [ - "doc", - "docx", - "odt" - ] - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/pdf-to-text": { - "post": { - "tags": [ - "convert-pdf-to-office" - ], - "summary": "Convert PDF to Text or RTF format", - "description": "This endpoint converts a given PDF file to Text or RTF format.", - "operationId": "processPdfToRTForTXT", - "parameters": [ - { - "name": "outputFormat", - "in": "query", - "description": "The output Text or RTF format", - "required": true, - "schema": { - "type": "string", - "enum": [ - "rtf", - "txt:Text" - ] - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/pdf-to-presentation": { - "post": { - "tags": [ - "convert-pdf-to-office" - ], - "summary": "Convert PDF to Presentation format", - "description": "This endpoint converts a given PDF file to a Presentation format.", - "operationId": "processPdfToPresentation", - "parameters": [ - { - "name": "outputFormat", - "in": "query", - "description": "The output Presentation format", - "required": true, - "schema": { - "type": "string", - "enum": [ - "ppt", - "pptx", - "odp" - ] - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/pdf-to-pdfa": { - "post": { - "tags": [ - "convert-pdf-to-pdfa" - ], - "summary": "Convert a PDF to a PDF/A", - "description": "This endpoint converts a PDF file to a PDF/A file. PDF/A is a format designed for long-term archiving of digital documents.", - "operationId": "pdfToPdfA", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be converted to a PDF/A file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/pdf-to-img": { - "post": { - "tags": [ - "convert-img-pdf-controller" - ], - "summary": "Convert PDF to image(s)", - "description": "This endpoint converts a PDF file to image(s) with the specified image format, color type, and DPI. Users can choose to get a single image or multiple images.", - "operationId": "convertToImage", - "parameters": [ - { - "name": "imageFormat", - "in": "query", - "description": "The output image format", - "required": true, - "schema": { - "type": "string", - "enum": [ - "png", - "jpeg", - "jpg", - "gif" - ] - } - }, - { - "name": "singleOrMultiple", - "in": "query", - "description": "Choose between a single image containing all pages or separate images for each page", - "required": true, - "schema": { - "type": "string", - "enum": [ - "single", - "multiple" - ] - } - }, - { - "name": "colorType", - "in": "query", - "description": "The color type of the output image(s)", - "required": true, - "schema": { - "type": "string", - "enum": [ - "rgb", - "greyscale", - "blackwhite" - ] - } - }, - { - "name": "dpi", - "in": "query", - "description": "The DPI (dots per inch) for the output image(s)", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be converted", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/pdf-to-html": { - "post": { - "tags": [ - "convert-pdf-to-office" - ], - "summary": "Convert PDF to HTML", - "description": "This endpoint converts a PDF file to HTML format.", - "operationId": "processPdfToHTML", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be converted to HTML format", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/ocr-pdf": { - "post": { - "tags": [ - "ocr-controller" - ], - "summary": "Process a PDF file with OCR", - "description": "This endpoint processes a PDF file using OCR (Optical Character Recognition). Users can specify languages, sidecar, deskew, clean, cleanFinal, ocrType, ocrRenderType, and removeImagesAfter options.", - "operationId": "processPdfWithOCR", - "parameters": [ - { - "name": "languages", - "in": "query", - "description": "List of languages to use in OCR processing", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "sidecar", - "in": "query", - "description": "Include OCR text in a sidecar text file if set to true", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "deskew", - "in": "query", - "description": "Deskew the input file if set to true", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "clean", - "in": "query", - "description": "Clean the input file if set to true", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "clean-final", - "in": "query", - "description": "Clean the final output if set to true", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "ocrType", - "in": "query", - "description": "Specify the OCR type, e.g., \u0027skip-text\u0027, \u0027force-ocr\u0027, or \u0027Normal\u0027", - "required": false, - "schema": { - "type": "string", - "enum": [ - "skip-text", - "force-ocr", - "Normal" - ] - } - }, - { - "name": "ocrRenderType", - "in": "query", - "description": "Specify the OCR render type, either \u0027hocr\u0027 or \u0027sandwich\u0027", - "required": false, - "schema": { - "type": "string", - "enum": [ - "hocr", - "sandwich" - ] - } - }, - { - "name": "removeImagesAfter", - "in": "query", - "description": "Remove images from the output PDF if set to true", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be processed with OCR", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/multi-page-layout": { - "post": { - "tags": [ - "multi-page-layout-controller" - ], - "summary": "Merge multiple pages of a PDF document into a single page", - "description": "This operation takes an input PDF file and the number of pages to merge into a single sheet in the output PDF file.", - "operationId": "mergeMultiplePagesIntoOne", - "parameters": [ - { - "name": "pagesPerSheet", - "in": "query", - "description": "The number of pages to fit onto a single sheet in the output PDF. Acceptable values are 2, 3, 4, 9, 16.", - "required": true, - "schema": { - "type": "integer", - "enum": [ - "2", - "3", - "4", - "9", - "16" - ] - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/merge-pdfs": { - "post": { - "tags": [ - "merge-controller" - ], - "summary": "Merge multiple PDF files into one", - "description": "This endpoint merges multiple PDF files into a single PDF file. The merged file will contain all pages from the input files in the order they were provided.", - "operationId": "mergePdfs", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "array", - "description": "The input PDF files to be merged into a single file", - "items": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/img-to-pdf": { - "post": { - "tags": [ - "convert-img-pdf-controller" - ], - "summary": "Convert images to a PDF file", - "description": "This endpoint converts one or more images to a PDF file. Users can specify whether to stretch the images to fit the PDF page, and whether to automatically rotate the images.", - "operationId": "convertToPdf", - "parameters": [ - { - "name": "stretchToFit", - "in": "query", - "description": "Whether to stretch the images to fit the PDF page or maintain the aspect ratio", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "colorType", - "in": "query", - "description": "The color type of the output image(s)", - "required": true, - "schema": { - "type": "string", - "enum": [ - "rgb", - "greyscale", - "blackwhite" - ] - } - }, - { - "name": "autoRotate", - "in": "query", - "description": "Whether to automatically rotate the images to better fit the PDF page", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": true - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "array", - "description": "The input images to be converted to a PDF file", - "items": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/file-to-pdf": { - "post": { - "tags": [ - "convert-office-controller" - ], - "summary": "Convert a file to a PDF using OCR", - "description": "This endpoint converts a given file to a PDF using Optical Character Recognition (OCR). The filename of the resulting PDF will be the original filename with \u0027_convertedToPDF.pdf\u0027 appended.", - "operationId": "processPdfWithOCR_1", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input file to be converted to a PDF file using OCR", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/extract-images": { - "post": { - "tags": [ - "extract-images-controller" - ], - "summary": "Extract images from a PDF file", - "description": "This endpoint extracts images from a given PDF file and returns them in a zip file. Users can specify the output image format.", - "operationId": "extractImages", - "parameters": [ - { - "name": "format", - "in": "query", - "description": "The output image format e.g., \u0027png\u0027, \u0027jpeg\u0027, or \u0027gif\u0027", - "required": true, - "schema": { - "type": "string", - "enum": [ - "png", - "jpeg", - "gif" - ] - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file containing images", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/extract-image-scans": { - "post": { - "tags": [ - "extract-image-scans-controller" - ], - "summary": "Extract image scans from an input file", - "description": "This endpoint extracts image scans from a given file based on certain parameters. Users can specify angle threshold, tolerance, minimum area, minimum contour area, and border size.", - "operationId": "extractImageScans", - "parameters": [ - { - "name": "angle_threshold", - "in": "query", - "description": "The angle threshold for the image scan extraction", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5 - }, - "example": 5 - }, - { - "name": "tolerance", - "in": "query", - "description": "The tolerance for the image scan extraction", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - }, - "example": 20 - }, - { - "name": "min_area", - "in": "query", - "description": "The minimum area for the image scan extraction", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 8000 - }, - "example": 8000 - }, - { - "name": "min_contour_area", - "in": "query", - "description": "The minimum contour area for the image scan extraction", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - }, - "example": 500 - }, - { - "name": "border_size", - "in": "query", - "description": "The border size for the image scan extraction", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - }, - "example": 1 - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input file containing image scans", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/compress-pdf": { - "post": { - "tags": [ - "compress-controller" - ], - "summary": "Optimize PDF file", - "description": "This endpoint accepts a PDF file and optimizes it based on the provided parameters.", - "operationId": "optimizePdf", - "parameters": [ - { - "name": "optimizeLevel", - "in": "query", - "description": "The level of optimization to apply to the PDF file. Higher values indicate greater compression but may reduce quality.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "1", - "2", - "3", - "4", - "5" - ] - } - }, - { - "name": "expectedOutputSize", - "in": "query", - "description": "The expected output size, e.g. \u0027100MB\u0027, \u002725KB\u0027, etc.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be optimized.", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/cert-sign": { - "post": { - "tags": [ - "cert-sign-controller" - ], - "summary": "Sign PDF with a Digital Certificate", - "description": "This endpoint accepts a PDF file, a digital certificate and related information to sign the PDF. It then returns the digitally signed PDF file.", - "operationId": "signPDF", - "parameters": [ - { - "name": "certType", - "in": "query", - "description": "The type of the digital certificate", - "required": false, - "schema": { - "type": "string", - "enum": [ - "PKCS12", - "PEM" - ] - } - }, - { - "name": "password", - "in": "query", - "description": "The password for the keystore or the private key", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "showSignature", - "in": "query", - "description": "Whether to visually show the signature in the PDF file", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "reason", - "in": "query", - "description": "The reason for signing the PDF", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "location", - "in": "query", - "description": "The location where the PDF is signed", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "The name of the signer", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "query", - "description": "The page number where the signature should be visible. This is required if showSignature is set to true", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to be signed", - "format": "binary" - }, - "key": { - "type": "string", - "description": "The private key for the digital certificate (required for PEM type certificates)", - "format": "binary" - }, - "cert": { - "type": "string", - "description": "The digital certificate (required for PEM type certificates)", - "format": "binary" - }, - "p12": { - "type": "string", - "description": "The PKCS12 keystore file (required for PKCS12 type certificates)", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/auto-crop": { - "post": { - "tags": [ - "scale-pages-controller" - ], - "operationId": "cropPdf", - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/add-watermark": { - "post": { - "tags": [ - "watermark-controller" - ], - "summary": "Add watermark to a PDF file", - "description": "This endpoint adds a watermark to a given PDF file. Users can specify the watermark text, font size, rotation, opacity, width spacer, and height spacer.", - "operationId": "addWatermark", - "parameters": [ - { - "name": "watermarkText", - "in": "query", - "description": "The watermark text to add to the PDF file", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fontSize", - "in": "query", - "description": "The font size of the watermark text", - "required": false, - "schema": { - "type": "number", - "format": "float", - "default": 30.0 - }, - "example": 30 - }, - { - "name": "rotation", - "in": "query", - "description": "The rotation of the watermark text in degrees", - "required": false, - "schema": { - "type": "number", - "format": "float", - "default": 0.0 - }, - "example": 0 - }, - { - "name": "opacity", - "in": "query", - "description": "The opacity of the watermark text (0.0 - 1.0)", - "required": false, - "schema": { - "type": "number", - "format": "float", - "default": 0.5 - }, - "example": 0.5 - }, - { - "name": "widthSpacer", - "in": "query", - "description": "The width spacer between watermark texts", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - }, - "example": 50 - }, - { - "name": "heightSpacer", - "in": "query", - "description": "The height spacer between watermark texts", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - }, - "example": 50 - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to add a watermark", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/add-password": { - "post": { - "tags": [ - "password-controller" - ], - "summary": "Add password to a PDF file", - "description": "This endpoint adds password protection to a PDF file. Users can specify a set of permissions that should be applied to the file.", - "operationId": "addPassword", - "parameters": [ - { - "name": "ownerPassword", - "in": "query", - "description": "The owner password to be added to the PDF file (Restricts what can be done with the document once it is opened)", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "password", - "in": "query", - "description": "The password to be added to the PDF file (Restricts the opening of the document itself.)", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "keyLength", - "in": "query", - "description": "The length of the encryption key", - "required": false, - "schema": { - "type": "string", - "enum": [ - "40", - "128", - "256" - ] - } - }, - { - "name": "canAssembleDocument", - "in": "query", - "description": "Whether the document assembly is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canExtractContent", - "in": "query", - "description": "Whether content extraction for accessibility is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canExtractForAccessibility", - "in": "query", - "description": "Whether content extraction for accessibility is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canFillInForm", - "in": "query", - "description": "Whether form filling is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canModify", - "in": "query", - "description": "Whether the document modification is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canModifyAnnotations", - "in": "query", - "description": "Whether modification of annotations is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canPrint", - "in": "query", - "description": "Whether printing of the document is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - }, - { - "name": "canPrintFaithful", - "in": "query", - "description": "Whether faithful printing is allowed", - "required": false, - "schema": { - "type": "boolean", - "default": false - }, - "example": false - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to which the password should be added", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/add-image": { - "post": { - "tags": [ - "overlay-image-controller" - ], - "summary": "Overlay image onto a PDF file", - "description": "This endpoint overlays an image onto a PDF file at the specified coordinates. The image can be overlaid on every page of the PDF if specified.", - "operationId": "overlayImage", - "parameters": [ - { - "name": "x", - "in": "query", - "description": "The x-coordinate at which to place the top-left corner of the image.", - "required": true, - "schema": { - "type": "number", - "format": "float" - }, - "example": 0 - }, - { - "name": "y", - "in": "query", - "description": "The y-coordinate at which to place the top-left corner of the image.", - "required": true, - "schema": { - "type": "number", - "format": "float" - }, - "example": 0 - }, - { - "name": "everyPage", - "in": "query", - "description": "Whether to overlay the image onto every page of the PDF.", - "required": true, - "schema": { - "type": "boolean" - }, - "example": false - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "fileInput", - "fileInput2" - ], - "type": "object", - "properties": { - "fileInput": { - "type": "string", - "description": "The input PDF file to overlay the image onto.", - "format": "binary" - }, - "fileInput2": { - "type": "string", - "description": "The image file to be overlaid onto the PDF.", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "array", - "items": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - } - }, - "/api/v1/status": { - "get": { - "tags": [ - "metrics-controller" - ], - "summary": "Application status and version", - "description": "This endpoint returns the status of the application and its version number.", - "operationId": "getStatus", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/requests": { - "get": { - "tags": [ - "metrics-controller" - ], - "summary": "POST request count", - "description": "This endpoint returns the total count of POST requests or the count of POST requests for a specific endpoint.", - "operationId": "getTotalRequests", - "parameters": [ - { - "name": "endpoint", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "number", - "format": "double" - } - } - } - } - } - } - }, - "/api/v1/loads": { - "get": { - "tags": [ - "metrics-controller" - ], - "summary": "GET request count", - "description": "This endpoint returns the total count of GET requests or the count of GET requests for a specific endpoint.", - "operationId": "getPageLoads", - "parameters": [ - { - "name": "endpoint", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "number", - "format": "double" - } - } - } - } - } - } - } - }, - "components": {} -} \ No newline at end of file