{ "openapi": "3.0.0", "info": { "title": "REST4i - PDF Services", "description": "PDF processing services for creating, manipulating, and extracting data from PDF documents on IBM i systems.", "version": "1.0.7-rest4i", "contact": { "name": "API Support", "url": "https://github.com/rest4i" }, "license": { "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0.html" } }, "servers": [ { "url": "/rest4i/api" } ], "tags": [ { "name": "PDF Services", "description": "PDF processing services for creating, manipulating, and extracting data from PDF documents." } ], "paths": { "/v1/pdf/convert": { "post": { "tags": ["PDF Services"], "summary": "Convert HTML to PDF", "description": "Convert HTML content to PDF document", "operationId": "convertToPdf", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConvertRequest" }, "example": { "html": "
Content here
", "size": "A4", "orientation": "portrait" } } } }, "responses": { "200": { "description": "PDF generated successfully", "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } } } } }, "/v1/pdf/merge": { "post": { "tags": ["PDF Services"], "summary": "Merge PDF files", "description": "Merges multiple PDF files into a single PDF document.", "operationId": "mergePdfs", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergeRequest" } } } }, "responses": { "200": { "description": "PDFs merged successfully", "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad request - at least one PDF file is required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } } } }, "/v1/pdf/rotate": { "post": { "tags": ["PDF Services"], "summary": "Rotate PDF pages", "description": "Rotates all pages in a PDF document by the specified angle.", "operationId": "rotatePdf", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RotateRequest" } } } }, "responses": { "200": { "description": "PDF rotated successfully", "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad request - PDF file is required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } } } }, "/v1/pdf/unprotect": { "post": { "tags": ["PDF Services"], "summary": "Remove PDF protection", "description": "Removes protection from a PDF document by converting it to images and back to PDF.", "operationId": "unprotectPdf", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnprotectRequest" } } } }, "responses": { "200": { "description": "PDF unprotected successfully", "content": { "application/pdf": { "schema": { "type": "string", "format": "binary" } } } }, "400": { "description": "Bad request - PDF file is required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Problem" } } } } } } } }, "components": { "schemas": { "ConvertRequest": { "type": "object", "properties": { "html": { "type": "string", "description": "HTML content to convert to PDF" }, "size": { "type": "string", "description": "Page size for the PDF", "default": "A4", "enum": ["A1", "A2", "A3", "A4", "A5", "A6", "A7"] }, "orientation": { "type": "string", "description": "Page orientation", "default": "portrait", "enum": ["portrait", "landscape"] } }, "required": ["html"] }, "MergeRequest": { "type": "object", "properties": { "pdfFiles": { "type": "array", "items": { "type": "string", "format": "byte" }, "description": "Array of Base64 encoded PDF files to merge" } }, "required": ["pdfFiles"] }, "RotateRequest": { "type": "object", "properties": { "pdfFile": { "type": "string", "format": "byte", "description": "Base64 encoded PDF file to rotate" }, "rotation": { "type": "integer", "description": "Rotation angle (90, 180, 270, 360/0)", "default": 90, "enum": [90, 180, 270, 360, 0] } }, "required": ["pdfFile"] }, "UnprotectRequest": { "type": "object", "properties": { "pdfFile": { "type": "string", "format": "byte", "description": "Base64 encoded protected PDF file" } }, "required": ["pdfFile"] }, "Problem": { "type": "object", "properties": { "error": { "type": "string" }, "message": { "type": "string" }, "code": { "type": "integer", "format": "int32" }, "details": { "type": "object" } } } }, "securitySchemes": { "bearerHttpAuthentication": { "type": "http", "description": "Bearer token authentication.", "scheme": "bearer", "bearerFormat": "Bearer [token]" }, "basicHttpAuthentication": { "type": "http", "description": "Basic authentication.", "scheme": "basic" } } } }