{
 "version": 34,
 "runtimeVersion": "v29",
 "lifecycleVersion": 1,
 "origin": "https://pdftoolsbase.com",
 "name": "pdftoolsbase",
 "generatedAt": "2026-09-27T00:00:00Z",
 "releaseDate": "2026-09-27",
 "spec": "WebMCP",
 "note": "Page contracts project the source-owned execution lifecycle. Browser-native integration and dashboard prerequisites are separate release axes.",
 "toolPageCount": 161,
 "aliasPageCount": 0,
 "brandedAliasPageCount": 0,
 "navigationActionCount": 3,
 "totalEntryCount": 1166,
 "chunkIndex": 1,
 "chunkCount": 6,
 "pages": [
  "https://pdftoolsbase.com/.well-known/webmcp.json",
  "https://pdftoolsbase.com/.well-known/webmcp-blog-1.json",
  "https://pdftoolsbase.com/.well-known/webmcp-blog-2.json",
  "https://pdftoolsbase.com/.well-known/webmcp-blog-3.json",
  "https://pdftoolsbase.com/.well-known/webmcp-blog-4.json",
  "https://pdftoolsbase.com/.well-known/webmcp-blog-5.json"
 ],
 "tools": [
  {
   "title": "Add Header and Footer to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-header-and-footer-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Header and Footer to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-headerLeft": {
      "type": "string"
     },
     "opt-headerCenter": {
      "type": "string"
     },
     "opt-headerRight": {
      "type": "string"
     },
     "opt-footerLeft": {
      "type": "string"
     },
     "opt-footerCenter": {
      "type": "string"
     },
     "opt-footerRight": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 18
     },
     "opt-color": {
      "type": "string"
     },
     "opt-skipFirst": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-headerLeft": {
     "selector": "#opt-headerLeft",
     "type": "string",
     "engineKey": "headerLeft",
     "eventSequence": []
    },
    "opt-headerCenter": {
     "selector": "#opt-headerCenter",
     "type": "string",
     "engineKey": "headerCenter",
     "eventSequence": []
    },
    "opt-headerRight": {
     "selector": "#opt-headerRight",
     "type": "string",
     "engineKey": "headerRight",
     "eventSequence": []
    },
    "opt-footerLeft": {
     "selector": "#opt-footerLeft",
     "type": "string",
     "engineKey": "footerLeft",
     "eventSequence": []
    },
    "opt-footerCenter": {
     "selector": "#opt-footerCenter",
     "type": "string",
     "engineKey": "footerCenter",
     "eventSequence": []
    },
    "opt-footerRight": {
     "selector": "#opt-footerRight",
     "type": "string",
     "engineKey": "footerRight",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-skipFirst": {
     "selector": "#opt-skipFirst",
     "type": "boolean",
     "engineKey": "skipFirst",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "header-footer"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-27",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-header-and-footer-to-pdf",
   "id": "add_header_and_footer_to_pdf_tool",
   "name": "add_header_and_footer_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-header-and-footer-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-header-and-footer-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Add Image to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-image-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Image to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-position": {
      "type": "string",
      "enum": [
       "top-left",
       "top-center",
       "top-right",
       "middle-left",
       "center",
       "middle-right",
       "bottom-left",
       "bottom-center",
       "bottom-right",
       "custom"
      ]
     },
     "opt-imgWidth": {
      "type": "number",
      "minimum": 0
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-imgWidth": {
     "selector": "#opt-imgWidth",
     "type": "number",
     "engineKey": "imgWidth",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf",
      ".jpg",
      ".jpeg",
      ".png",
      "image/jpeg",
      "image/png"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-27",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-image-to-pdf",
   "id": "add_image_to_pdf_tool",
   "name": "add_image_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-image-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-image-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Add Margins to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-margins-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Margins to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-unit": {
      "type": "string",
      "enum": [
       "pt",
       "mm",
       "in"
      ]
     },
     "opt-top": {
      "type": "number",
      "minimum": 0,
      "multipleOf": 1
     },
     "opt-bottom": {
      "type": "number",
      "minimum": 0,
      "multipleOf": 1
     },
     "opt-left": {
      "type": "number",
      "minimum": 0,
      "multipleOf": 1
     },
     "opt-right": {
      "type": "number",
      "minimum": 0,
      "multipleOf": 1
     },
     "opt-background": {
      "type": "string"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-unit": {
     "selector": "#opt-unit",
     "type": "string",
     "engineKey": "unit",
     "eventSequence": []
    },
    "opt-top": {
     "selector": "#opt-top",
     "type": "number",
     "engineKey": "top",
     "eventSequence": []
    },
    "opt-bottom": {
     "selector": "#opt-bottom",
     "type": "number",
     "engineKey": "bottom",
     "eventSequence": []
    },
    "opt-left": {
     "selector": "#opt-left",
     "type": "number",
     "engineKey": "left",
     "eventSequence": []
    },
    "opt-right": {
     "selector": "#opt-right",
     "type": "number",
     "engineKey": "right",
     "eventSequence": []
    },
    "opt-background": {
     "selector": "#opt-background",
     "type": "string",
     "engineKey": "background",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-margins"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-27",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-margins-to-pdf",
   "id": "add_margins_to_pdf_tool",
   "name": "add_margins_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-margins-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-margins-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Add Page Numbers to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-page-numbers-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Page Numbers to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-template": {
      "type": "string"
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "bottom-center",
       "bottom-right",
       "bottom-left",
       "top-center",
       "top-right",
       "top-left"
      ]
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 36
     },
     "opt-color": {
      "type": "string"
     },
     "opt-startAt": {
      "type": "number",
      "minimum": 1
     },
     "opt-skipFirst": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-template": {
     "selector": "#opt-template",
     "type": "string",
     "engineKey": "template",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-startAt": {
     "selector": "#opt-startAt",
     "type": "number",
     "engineKey": "startAt",
     "eventSequence": []
    },
    "opt-skipFirst": {
     "selector": "#opt-skipFirst",
     "type": "boolean",
     "engineKey": "skipFirst",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "page-numbers"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-page-numbers-to-pdf",
   "id": "add_page_numbers_to_pdf_tool",
   "name": "add_page_numbers_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-page-numbers-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-page-numbers-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Add Signature to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-signature-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Signature to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-sigMode": {
      "type": "string",
      "enum": [
       "upload",
       "type",
       "draw"
      ]
     },
     "opt-sigText": {
      "type": "string"
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "bottom-right",
       "bottom-left",
       "bottom-center",
       "top-right",
       "custom"
      ]
     },
     "opt-imgWidth": {
      "type": "number",
      "minimum": 40,
      "maximum": 400
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-sigMode": {
     "selector": "#opt-sigMode",
     "type": "string",
     "engineKey": "sigMode",
     "eventSequence": []
    },
    "opt-sigText": {
     "selector": "#opt-sigText",
     "type": "string",
     "engineKey": "sigText",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-imgWidth": {
     "selector": "#opt-imgWidth",
     "type": "number",
     "engineKey": "imgWidth",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "sign"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-signature-to-pdf",
   "id": "add_signature_to_pdf_tool",
   "name": "add_signature_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-signature-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-signature-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Add Text to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-text-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Text to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 200
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "top-left",
       "top-center",
       "top-right",
       "center-left",
       "center",
       "center-right",
       "bottom-left",
       "bottom-center",
       "bottom-right",
       "custom"
      ]
     },
     "opt-rotation": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "number",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-text-to-pdf",
   "id": "add_text_to_pdf_tool",
   "name": "add_text_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-text-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-text-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Add Watermark to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/add-watermark-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Add Watermark to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-wmType": {
      "type": "string",
      "enum": [
       "text",
       "image"
      ]
     },
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 10,
      "maximum": 300
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 5,
      "maximum": 80,
      "multipleOf": 5
     },
     "opt-rotation": {
      "type": "string",
      "enum": [
       "0",
       "-45",
       "45",
       "90"
      ]
     },
     "opt-layout": {
      "type": "string",
      "enum": [
       "center",
       "tile"
      ]
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "center",
       "top-left",
       "top-center",
       "top-right",
       "middle-left",
       "middle-right",
       "bottom-left",
       "bottom-center",
       "bottom-right"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-wmType": {
     "selector": "#opt-wmType",
     "type": "string",
     "engineKey": "wmType",
     "eventSequence": []
    },
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "string",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-layout": {
     "selector": "#opt-layout",
     "type": "string",
     "engineKey": "layout",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "watermark"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "add-watermark-to-pdf",
   "id": "add_watermark_to_pdf_tool",
   "name": "add_watermark_to_pdf_tool",
   "url": "https://pdftoolsbase.com/add-watermark-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/add-watermark-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Annotate PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/annotate-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Annotate PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 200
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "top-left",
       "top-center",
       "top-right",
       "center-left",
       "center",
       "center-right",
       "bottom-left",
       "bottom-center",
       "bottom-right",
       "custom"
      ]
     },
     "opt-rotation": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "number",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "annotate-pdf",
   "id": "annotate_pdf_tool",
   "name": "annotate_pdf_tool",
   "url": "https://pdftoolsbase.com/annotate-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/annotate-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Base64 to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/base64-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Base64 to PDF\" tool. Converts pasted Base64 text into PDF bytes without a selected file. Processing stays in your browser.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-data": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-data": {
     "selector": "#opt-data",
     "type": "string",
     "engineKey": "data",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": false,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      ".txt",
      ".base64",
      "text/plain"
     ],
     "description": "Optional: select a local file only when using the uploaded-file branch."
    },
    {
     "id": "opt-base64File",
     "selector": "#opt-base64File",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      ".txt",
      ".base64",
      "text/plain"
     ],
     "condition": "Validated by the source operation preparation for the selected mode.",
     "description": "Optional: select a local file only when using the uploaded-file branch."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "base64-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "base64-to-pdf",
   "id": "base64_to_pdf_tool",
   "name": "base64_to_pdf_tool",
   "url": "https://pdftoolsbase.com/base64-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/base64-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Bates Numbering PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/bates-numbering-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Bates Numbering PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-prefix": {
      "type": "string"
     },
     "opt-startNumber": {
      "type": "number",
      "minimum": 0
     },
     "opt-digits": {
      "type": "number",
      "minimum": 1,
      "maximum": 12
     },
     "opt-suffix": {
      "type": "string"
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "bottom-right",
       "bottom-left",
       "top-right",
       "top-left"
      ]
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 20
     },
     "opt-color": {
      "type": "string"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-prefix": {
     "selector": "#opt-prefix",
     "type": "string",
     "engineKey": "prefix",
     "eventSequence": []
    },
    "opt-startNumber": {
     "selector": "#opt-startNumber",
     "type": "number",
     "engineKey": "startNumber",
     "eventSequence": []
    },
    "opt-digits": {
     "selector": "#opt-digits",
     "type": "number",
     "engineKey": "digits",
     "eventSequence": []
    },
    "opt-suffix": {
     "selector": "#opt-suffix",
     "type": "string",
     "engineKey": "suffix",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "bates"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "bates-numbering-pdf",
   "id": "bates_numbering_pdf_tool",
   "name": "bates_numbering_pdf_tool",
   "url": "https://pdftoolsbase.com/bates-numbering-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/bates-numbering-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Black and White PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/black-and-white-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Black and White PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "grayscale",
       "bw"
      ]
     },
     "opt-threshold": {
      "type": "number",
      "minimum": 0,
      "maximum": 255,
      "multipleOf": 1
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-threshold": {
     "selector": "#opt-threshold",
     "type": "number",
     "engineKey": "threshold",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "grayscale"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "black-and-white-pdf",
   "id": "black_and_white_pdf_tool",
   "name": "black_and_white_pdf_tool",
   "url": "https://pdftoolsbase.com/black-and-white-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/black-and-white-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "BMP to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/bmp-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"BMP to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".bmp",
      "image/bmp"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "bmp-to-pdf",
   "id": "bmp_to_pdf_tool",
   "name": "bmp_to_pdf_tool",
   "url": "https://pdftoolsbase.com/bmp-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/bmp-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Booklet PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/booklet-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Booklet PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "landscape",
       "portrait"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 60
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "booklet"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "booklet-pdf",
   "id": "booklet_pdf_tool",
   "name": "booklet_pdf_tool",
   "url": "https://pdftoolsbase.com/booklet-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/booklet-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Combine PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/combine-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Combine PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-addBlanks": {
      "type": "boolean"
     },
     "opt-pageRanges": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-addBlanks": {
     "selector": "#opt-addBlanks",
     "type": "boolean",
     "engineKey": "addBlanks",
     "eventSequence": []
    },
    "opt-pageRanges": {
     "selector": "#opt-pageRanges",
     "type": "string",
     "engineKey": "pageRanges",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "merge"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "combine-pdf",
   "id": "combine_pdf_tool",
   "name": "combine_pdf_tool",
   "url": "https://pdftoolsbase.com/combine-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/combine-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compare PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compare-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Compare PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "text",
       "visual",
       "both"
      ]
     },
     "opt-maxPages": {
      "type": "number",
      "minimum": 1,
      "maximum": 200
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-maxPages": {
     "selector": "#opt-maxPages",
     "type": "number",
     "engineKey": "maxPages",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-fileB",
     "selector": "#opt-fileB",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compare"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compare-pdf",
   "id": "compare_pdf_tool",
   "name": "compare_pdf_tool",
   "url": "https://pdftoolsbase.com/compare-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compare-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF to 100KB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-to-100kb/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF to 100KB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-to-100kb",
   "id": "compress_pdf_to_100kb_tool",
   "name": "compress_pdf_to_100kb_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-to-100kb/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-to-100kb/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF to 1MB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-to-1mb/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF to 1MB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-to-1mb",
   "id": "compress_pdf_to_1mb_tool",
   "name": "compress_pdf_to_1mb_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-to-1mb/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-to-1mb/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF to 200KB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-to-200kb/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF to 200KB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-to-200kb",
   "id": "compress_pdf_to_200kb_tool",
   "name": "compress_pdf_to_200kb_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-to-200kb/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-to-200kb/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF to 2MB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-to-2mb/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF to 2MB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-to-2mb",
   "id": "compress_pdf_to_2mb_tool",
   "name": "compress_pdf_to_2mb_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-to-2mb/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-to-2mb/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF to 500KB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-to-500kb/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF to 500KB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-to-500kb",
   "id": "compress_pdf_to_500kb_tool",
   "name": "compress_pdf_to_500kb_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-to-500kb/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-to-500kb/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF to Custom Size",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-to-custom-size/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF to Custom Size\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-to-custom-size",
   "id": "compress_pdf_to_custom_size_tool",
   "name": "compress_pdf_to_custom_size_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-to-custom-size/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-to-custom-size/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF with High Quality",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf-without-losing-quality/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF with High Quality\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf-without-losing-quality",
   "id": "compress_pdf_without_losing_quality_tool",
   "name": "compress_pdf_without_losing_quality_tool",
   "url": "https://pdftoolsbase.com/compress-pdf-without-losing-quality/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf-without-losing-quality/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Compress PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/compress-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Compress PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "compress-pdf",
   "id": "compress_pdf_tool",
   "name": "compress_pdf_tool",
   "url": "https://pdftoolsbase.com/compress-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/compress-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Create Fillable PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/create-fillable-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Create Fillable PDF\" tool. Creates a blank fillable PDF without a selected file, or uses a PDF selected with the visible file control as the base. Processing stays in your browser.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-fields": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 8,
      "maximum": 18
     },
     "opt-drawLabels": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-fields": {
     "selector": "#opt-fields",
     "type": "string",
     "engineKey": "fields",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-drawLabels": {
     "selector": "#opt-drawLabels",
     "type": "boolean",
     "engineKey": "drawLabels",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": false,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ],
     "description": "Optional: select a local file only when using the uploaded-file branch."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "forms-create"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "create-fillable-pdf",
   "id": "create_fillable_pdf_tool",
   "name": "create_fillable_pdf_tool",
   "url": "https://pdftoolsbase.com/create-fillable-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/create-fillable-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Crop PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/crop-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Crop PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-applyScope": {
      "type": "string",
      "enum": [
       "all",
       "current",
       "drawn-only"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "auto",
       "manual",
       "preset"
      ]
     },
     "opt-marginTop": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-marginBottom": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-marginLeft": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-marginRight": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-applyScope": {
     "selector": "#opt-applyScope",
     "type": "string",
     "engineKey": "applyScope",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-marginTop": {
     "selector": "#opt-marginTop",
     "type": "number",
     "engineKey": "marginTop",
     "eventSequence": []
    },
    "opt-marginBottom": {
     "selector": "#opt-marginBottom",
     "type": "number",
     "engineKey": "marginBottom",
     "eventSequence": []
    },
    "opt-marginLeft": {
     "selector": "#opt-marginLeft",
     "type": "number",
     "engineKey": "marginLeft",
     "eventSequence": []
    },
    "opt-marginRight": {
     "selector": "#opt-marginRight",
     "type": "number",
     "engineKey": "marginRight",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "crop"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "crop-pdf",
   "id": "crop_pdf_tool",
   "name": "crop_pdf_tool",
   "url": "https://pdftoolsbase.com/crop-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/crop-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "CSV to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/csv-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"CSV to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".csv"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "csv-to-pdf",
   "id": "csv_to_pdf_tool",
   "name": "csv_to_pdf_tool",
   "url": "https://pdftoolsbase.com/csv-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/csv-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Delete Pages from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/delete-pages-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Delete Pages from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "delete-pages-from-pdf",
   "id": "delete_pages_from_pdf_tool",
   "name": "delete_pages_from_pdf_tool",
   "url": "https://pdftoolsbase.com/delete-pages-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/delete-pages-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "DOCX to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/docx-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"DOCX to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".docx",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "docx-to-pdf",
   "id": "docx_to_pdf_tool",
   "name": "docx_to_pdf_tool",
   "url": "https://pdftoolsbase.com/docx-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/docx-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Draw on PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/draw-on-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Draw on PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-sigMode": {
      "type": "string",
      "enum": [
       "upload",
       "type",
       "draw"
      ]
     },
     "opt-sigText": {
      "type": "string"
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "bottom-right",
       "bottom-left",
       "bottom-center",
       "top-right",
       "custom"
      ]
     },
     "opt-imgWidth": {
      "type": "number",
      "minimum": 40,
      "maximum": 400
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-sigMode": {
     "selector": "#opt-sigMode",
     "type": "string",
     "engineKey": "sigMode",
     "eventSequence": []
    },
    "opt-sigText": {
     "selector": "#opt-sigText",
     "type": "string",
     "engineKey": "sigText",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-imgWidth": {
     "selector": "#opt-imgWidth",
     "type": "number",
     "engineKey": "imgWidth",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "sign"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "draw-on-pdf",
   "id": "draw_on_pdf_tool",
   "name": "draw_on_pdf_tool",
   "url": "https://pdftoolsbase.com/draw-on-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/draw-on-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Duplicate PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/duplicate-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Duplicate PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "duplicate-pdf-pages",
   "id": "duplicate_pdf_pages_tool",
   "name": "duplicate_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/duplicate-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/duplicate-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Edit PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/edit-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Edit PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 200
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "top-left",
       "top-center",
       "top-right",
       "center-left",
       "center",
       "center-right",
       "bottom-left",
       "bottom-center",
       "bottom-right",
       "custom"
      ]
     },
     "opt-rotation": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "number",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "edit-pdf",
   "id": "edit_pdf_tool",
   "name": "edit_pdf_tool",
   "url": "https://pdftoolsbase.com/edit-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/edit-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "EPUB to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/epub-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"EPUB to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".epub"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "epub-to-pdf",
   "id": "epub_to_pdf_tool",
   "name": "epub_to_pdf_tool",
   "url": "https://pdftoolsbase.com/epub-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/epub-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Excel to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/excel-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Excel to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".xlsx",
      ".xls",
      ".csv"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "excel-to-pdf",
   "id": "excel_to_pdf_tool",
   "name": "excel_to_pdf_tool",
   "url": "https://pdftoolsbase.com/excel-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/excel-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Extract Even Pages from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/extract-even-pages-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Extract Even Pages from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "extract-even-pages-from-pdf",
   "id": "extract_even_pages_from_pdf_tool",
   "name": "extract_even_pages_from_pdf_tool",
   "url": "https://pdftoolsbase.com/extract-even-pages-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/extract-even-pages-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Extract Images from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/extract-images-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Extract Images from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "embedded",
       "pages"
      ]
     },
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpeg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "150",
       "200",
       "300"
      ]
     },
     "opt-minSize": {
      "type": "number",
      "minimum": 0,
      "maximum": 512
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-minSize": {
     "selector": "#opt-minSize",
     "type": "number",
     "engineKey": "minSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "extract-images"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "extract-images-from-pdf",
   "id": "extract_images_from_pdf_tool",
   "name": "extract_images_from_pdf_tool",
   "url": "https://pdftoolsbase.com/extract-images-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/extract-images-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Extract Odd Pages from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/extract-odd-pages-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Extract Odd Pages from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "extract-odd-pages-from-pdf",
   "id": "extract_odd_pages_from_pdf_tool",
   "name": "extract_odd_pages_from_pdf_tool",
   "url": "https://pdftoolsbase.com/extract-odd-pages-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/extract-odd-pages-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Extract PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/extract-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Extract PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "extract-pdf-pages",
   "id": "extract_pdf_pages_tool",
   "name": "extract_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/extract-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/extract-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Extract Text from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/extract-text-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Extract Text from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "md"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "extract-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "extract-text-from-pdf",
   "id": "extract_text_from_pdf_tool",
   "name": "extract_text_from_pdf_tool",
   "url": "https://pdftoolsbase.com/extract-text-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/extract-text-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Fill PDF Form",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/fill-pdf-form/",
   "processingProfile": "local_file",
   "description": "On-page \"Fill PDF Form\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-values": {
      "type": "string"
     },
     "opt-flatten": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-values": {
     "selector": "#opt-values",
     "type": "string",
     "engineKey": "values",
     "eventSequence": []
    },
    "opt-flatten": {
     "selector": "#opt-flatten",
     "type": "boolean",
     "engineKey": "flatten",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "forms-fill"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "fill-pdf-form",
   "id": "fill_pdf_form_tool",
   "name": "fill_pdf_form_tool",
   "url": "https://pdftoolsbase.com/fill-pdf-form/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/fill-pdf-form/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Flatten PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/flatten-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Flatten PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 95,
      "multipleOf": 5
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "flatten"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "flatten-pdf",
   "id": "flatten_pdf_tool",
   "name": "flatten_pdf_tool",
   "url": "https://pdftoolsbase.com/flatten-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/flatten-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Grayscale PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/grayscale-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Grayscale PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "grayscale",
       "bw"
      ]
     },
     "opt-threshold": {
      "type": "number",
      "minimum": 0,
      "maximum": 255,
      "multipleOf": 1
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-threshold": {
     "selector": "#opt-threshold",
     "type": "number",
     "engineKey": "threshold",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "grayscale"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "grayscale-pdf",
   "id": "grayscale_pdf_tool",
   "name": "grayscale_pdf_tool",
   "url": "https://pdftoolsbase.com/grayscale-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/grayscale-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Highlight PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/highlight-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Highlight PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-searchText": {
      "type": "string"
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 20,
      "maximum": 90,
      "multipleOf": 5
     },
     "opt-caseSensitive": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-searchText": {
     "selector": "#opt-searchText",
     "type": "string",
     "engineKey": "searchText",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-caseSensitive": {
     "selector": "#opt-caseSensitive",
     "type": "boolean",
     "engineKey": "caseSensitive",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "highlight"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "highlight-pdf",
   "id": "highlight_pdf_tool",
   "name": "highlight_pdf_tool",
   "url": "https://pdftoolsbase.com/highlight-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/highlight-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi JPG to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-jpg-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi JPG to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-jpg-to-pdf",
   "id": "hindi_jpg_to_pdf_tool",
   "name": "hindi_jpg_to_pdf_tool",
   "url": "https://pdftoolsbase.com/hindi-jpg-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-jpg-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi PDF Compressor",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-pdf-compressor/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi PDF Compressor\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-pdf-compressor",
   "id": "hindi_pdf_compressor_tool",
   "name": "hindi_pdf_compressor_tool",
   "url": "https://pdftoolsbase.com/hindi-pdf-compressor/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-pdf-compressor/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi PDF Edit",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-pdf-edit/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi PDF Edit\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 200
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "top-left",
       "top-center",
       "top-right",
       "center-left",
       "center",
       "center-right",
       "bottom-left",
       "bottom-center",
       "bottom-right",
       "custom"
      ]
     },
     "opt-rotation": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "number",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-pdf-edit",
   "id": "hindi_pdf_edit_tool",
   "name": "hindi_pdf_edit_tool",
   "url": "https://pdftoolsbase.com/hindi-pdf-edit/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-pdf-edit/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi PDF Merge",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-pdf-merge/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi PDF Merge\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-addBlanks": {
      "type": "boolean"
     },
     "opt-pageRanges": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-addBlanks": {
     "selector": "#opt-addBlanks",
     "type": "boolean",
     "engineKey": "addBlanks",
     "eventSequence": []
    },
    "opt-pageRanges": {
     "selector": "#opt-pageRanges",
     "type": "string",
     "engineKey": "pageRanges",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "merge"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-pdf-merge",
   "id": "hindi_pdf_merge_tool",
   "name": "hindi_pdf_merge_tool",
   "url": "https://pdftoolsbase.com/hindi-pdf-merge/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-pdf-merge/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi PDF Password Remove",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-pdf-password-remove/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi PDF Password Remove\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-password": {
      "type": "string"
     },
     "opt-stripMeta": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-password": {
     "selector": "#opt-password",
     "type": "string",
     "engineKey": "password",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "security-unlock"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-pdf-password-remove",
   "id": "hindi_pdf_password_remove_tool",
   "name": "hindi_pdf_password_remove_tool",
   "url": "https://pdftoolsbase.com/hindi-pdf-password-remove/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-pdf-password-remove/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi PDF to Word",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-pdf-to-word/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi PDF to Word\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "text",
       "ocr"
      ]
     },
     "opt-ocrLang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-ocrLang": {
     "selector": "#opt-ocrLang",
     "type": "string",
     "engineKey": "ocrLang",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-docx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-pdf-to-word",
   "id": "hindi_pdf_to_word_tool",
   "name": "hindi_pdf_to_word_tool",
   "url": "https://pdftoolsbase.com/hindi-pdf-to-word/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-pdf-to-word/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Hindi Word to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/hindi-word-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Hindi Word to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".docx",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "hindi-word-to-pdf",
   "id": "hindi_word_to_pdf_tool",
   "name": "hindi_word_to_pdf_tool",
   "url": "https://pdftoolsbase.com/hindi-word-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/hindi-word-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "HTML to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/html-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"HTML to PDF\" tool. Generates a PDF from pasted HTML without a selected file. Processing stays in your browser.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-renderMode": {
      "type": "string",
      "enum": [
       "text",
       "rendered"
      ]
     },
     "opt-htmlContent": {
      "type": "string"
     },
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 40,
      "multipleOf": 1
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-renderMode": {
     "selector": "#opt-renderMode",
     "type": "string",
     "engineKey": "renderMode",
     "eventSequence": []
    },
    "opt-htmlContent": {
     "selector": "#opt-htmlContent",
     "type": "string",
     "engineKey": "htmlContent",
     "eventSequence": []
    },
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": false,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      ".html",
      ".htm",
      "text/html"
     ],
     "description": "Optional: select a local file only when using the uploaded-file branch."
    },
    {
     "id": "opt-htmlFile",
     "selector": "#opt-htmlFile",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      ".html",
      ".htm",
      "text/html"
     ],
     "condition": "Validated by the source operation preparation for the selected mode.",
     "description": "Optional: select a local file only when using the uploaded-file branch."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "html-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "html-to-pdf",
   "id": "html_to_pdf_tool",
   "name": "html_to_pdf_tool",
   "url": "https://pdftoolsbase.com/html-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/html-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Image PDF to Text",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/image-pdf-to-text/",
   "processingProfile": "local_file",
   "description": "On-page \"Image PDF to Text\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-lang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "docx",
       "searchable"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-lang": {
     "selector": "#opt-lang",
     "type": "string",
     "engineKey": "lang",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "ocr"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "image-pdf-to-text",
   "id": "image_pdf_to_text_tool",
   "name": "image_pdf_to_text_tool",
   "url": "https://pdftoolsbase.com/image-pdf-to-text/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/image-pdf-to-text/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Image to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/image-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Image to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "image-to-pdf",
   "id": "image_to_pdf_tool",
   "name": "image_to_pdf_tool",
   "url": "https://pdftoolsbase.com/image-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/image-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Insert Blank Page in PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/insert-blank-page-in-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Insert Blank Page in PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "insert-blank-page-in-pdf",
   "id": "insert_blank_page_in_pdf_tool",
   "name": "insert_blank_page_in_pdf_tool",
   "url": "https://pdftoolsbase.com/insert-blank-page-in-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/insert-blank-page-in-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Invoice to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/invoice-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Invoice to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".docx",
      ".html",
      ".htm",
      ".txt",
      ".csv"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "invoice-to-pdf",
   "id": "invoice_to_pdf_tool",
   "name": "invoice_to_pdf_tool",
   "url": "https://pdftoolsbase.com/invoice-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/invoice-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "JPEG to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/jpeg-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"JPEG to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "jpeg-to-pdf",
   "id": "jpeg_to_pdf_tool",
   "name": "jpeg_to_pdf_tool",
   "url": "https://pdftoolsbase.com/jpeg-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/jpeg-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "JPG to PDF Converter",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/jpg-to-pdf-converter/",
   "processingProfile": "local_file",
   "description": "On-page \"JPG to PDF Converter\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "jpg-to-pdf-converter",
   "id": "jpg_to_pdf_converter_tool",
   "name": "jpg_to_pdf_converter_tool",
   "url": "https://pdftoolsbase.com/jpg-to-pdf-converter/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/jpg-to-pdf-converter/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "JPG to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/jpg-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"JPG to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "jpg-to-pdf",
   "id": "jpg_to_pdf_tool",
   "name": "jpg_to_pdf_tool",
   "url": "https://pdftoolsbase.com/jpg-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/jpg-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "LaTeX to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/latex-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"LaTeX to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".tex",
      ".latex",
      ".txt"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "latex-to-pdf",
   "id": "latex_to_pdf_tool",
   "name": "latex_to_pdf_tool",
   "url": "https://pdftoolsbase.com/latex-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/latex-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Lock PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/lock-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Lock PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns an AES-256 revision 6 encrypted PDF preserving original page content; successful files include actual MIME type and byte size. Reader permissions are advisory; the owner password grants full access.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-password": {
      "type": "string"
     },
     "opt-password2": {
      "type": "string"
     },
     "opt-userPwSame": {
      "type": "boolean"
     },
     "opt-userPassword": {
      "type": "string"
     },
     "opt-allowPrint": {
      "type": "string",
      "enum": [
       "highRes",
       "lowRes",
       "no"
      ]
     },
     "opt-allowCopy": {
      "type": "boolean"
     },
     "opt-allowModify": {
      "type": "boolean"
     },
     "opt-allowAnnotate": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-password": {
     "selector": "#opt-password",
     "type": "string",
     "engineKey": "password",
     "eventSequence": []
    },
    "opt-password2": {
     "selector": "#opt-password2",
     "type": "string",
     "engineKey": "password2",
     "eventSequence": []
    },
    "opt-userPwSame": {
     "selector": "#opt-userPwSame",
     "type": "boolean",
     "engineKey": "userPwSame",
     "eventSequence": []
    },
    "opt-userPassword": {
     "selector": "#opt-userPassword",
     "type": "string",
     "engineKey": "userPassword",
     "eventSequence": []
    },
    "opt-allowPrint": {
     "selector": "#opt-allowPrint",
     "type": "string",
     "engineKey": "allowPrint",
     "eventSequence": []
    },
    "opt-allowCopy": {
     "selector": "#opt-allowCopy",
     "type": "boolean",
     "engineKey": "allowCopy",
     "eventSequence": []
    },
    "opt-allowModify": {
     "selector": "#opt-allowModify",
     "type": "boolean",
     "engineKey": "allowModify",
     "eventSequence": []
    },
    "opt-allowAnnotate": {
     "selector": "#opt-allowAnnotate",
     "type": "boolean",
     "engineKey": "allowAnnotate",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "security-protect"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "lock-pdf",
   "id": "lock_pdf_tool",
   "name": "lock_pdf_tool",
   "url": "https://pdftoolsbase.com/lock-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/lock-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Make PDF Searchable",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/make-pdf-searchable/",
   "processingProfile": "local_file",
   "description": "On-page \"Make PDF Searchable\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-lang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "docx",
       "searchable"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-lang": {
     "selector": "#opt-lang",
     "type": "string",
     "engineKey": "lang",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "ocr"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "make-pdf-searchable",
   "id": "make_pdf_searchable_tool",
   "name": "make_pdf_searchable_tool",
   "url": "https://pdftoolsbase.com/make-pdf-searchable/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/make-pdf-searchable/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Make PDF Smaller",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/make-pdf-smaller/",
   "processingProfile": "local_file",
   "description": "On-page \"Make PDF Smaller\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "make-pdf-smaller",
   "id": "make_pdf_smaller_tool",
   "name": "make_pdf_smaller_tool",
   "url": "https://pdftoolsbase.com/make-pdf-smaller/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/make-pdf-smaller/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Markdown to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/markdown-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Markdown to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".md",
      ".markdown",
      ".txt"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "markdown-to-pdf",
   "id": "markdown_to_pdf_tool",
   "name": "markdown_to_pdf_tool",
   "url": "https://pdftoolsbase.com/markdown-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/markdown-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Merge PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/merge-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Merge PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-addBlanks": {
      "type": "boolean"
     },
     "opt-pageRanges": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-addBlanks": {
     "selector": "#opt-addBlanks",
     "type": "boolean",
     "engineKey": "addBlanks",
     "eventSequence": []
    },
    "opt-pageRanges": {
     "selector": "#opt-pageRanges",
     "type": "string",
     "engineKey": "pageRanges",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "merge"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "merge-pdf",
   "id": "merge_pdf_tool",
   "name": "merge_pdf_tool",
   "url": "https://pdftoolsbase.com/merge-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/merge-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "N-up PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/n-up-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"N-up PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-n": {
      "type": "string",
      "enum": [
       "2",
       "4",
       "6",
       "9",
       "16"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape",
       "auto"
      ]
     },
     "opt-gutter": {
      "type": "number",
      "minimum": 0,
      "maximum": 50
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 80
     },
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "legal"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-n": {
     "selector": "#opt-n",
     "type": "string",
     "engineKey": "n",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-gutter": {
     "selector": "#opt-gutter",
     "type": "number",
     "engineKey": "gutter",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "n-up"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "n-up-pdf",
   "id": "n_up_pdf_tool",
   "name": "n_up_pdf_tool",
   "url": "https://pdftoolsbase.com/n-up-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/n-up-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "OCR PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/ocr-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"OCR PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-lang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "docx",
       "searchable"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-lang": {
     "selector": "#opt-lang",
     "type": "string",
     "engineKey": "lang",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "ocr"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "ocr-pdf",
   "id": "ocr_pdf_tool",
   "name": "ocr_pdf_tool",
   "url": "https://pdftoolsbase.com/ocr-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/ocr-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "ODT to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/odt-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"ODT to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".odt",
      "application/vnd.oasis.opendocument.text"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "odt-to-pdf",
   "id": "odt_to_pdf_tool",
   "name": "odt_to_pdf_tool",
   "url": "https://pdftoolsbase.com/odt-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/odt-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Organize PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/organize-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Organize PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "organize-pdf-pages",
   "id": "organize_pdf_pages_tool",
   "name": "organize_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/organize-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/organize-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Organize PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/organize-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Organize PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "organize-pdf",
   "id": "organize_pdf_tool",
   "name": "organize_pdf_tool",
   "url": "https://pdftoolsbase.com/organize-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/organize-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Password Protect PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/password-protect-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Password Protect PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns an AES-256 revision 6 encrypted PDF preserving original page content; successful files include actual MIME type and byte size. Reader permissions are advisory; the owner password grants full access.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-password": {
      "type": "string"
     },
     "opt-password2": {
      "type": "string"
     },
     "opt-userPwSame": {
      "type": "boolean"
     },
     "opt-userPassword": {
      "type": "string"
     },
     "opt-allowPrint": {
      "type": "string",
      "enum": [
       "highRes",
       "lowRes",
       "no"
      ]
     },
     "opt-allowCopy": {
      "type": "boolean"
     },
     "opt-allowModify": {
      "type": "boolean"
     },
     "opt-allowAnnotate": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-password": {
     "selector": "#opt-password",
     "type": "string",
     "engineKey": "password",
     "eventSequence": []
    },
    "opt-password2": {
     "selector": "#opt-password2",
     "type": "string",
     "engineKey": "password2",
     "eventSequence": []
    },
    "opt-userPwSame": {
     "selector": "#opt-userPwSame",
     "type": "boolean",
     "engineKey": "userPwSame",
     "eventSequence": []
    },
    "opt-userPassword": {
     "selector": "#opt-userPassword",
     "type": "string",
     "engineKey": "userPassword",
     "eventSequence": []
    },
    "opt-allowPrint": {
     "selector": "#opt-allowPrint",
     "type": "string",
     "engineKey": "allowPrint",
     "eventSequence": []
    },
    "opt-allowCopy": {
     "selector": "#opt-allowCopy",
     "type": "boolean",
     "engineKey": "allowCopy",
     "eventSequence": []
    },
    "opt-allowModify": {
     "selector": "#opt-allowModify",
     "type": "boolean",
     "engineKey": "allowModify",
     "eventSequence": []
    },
    "opt-allowAnnotate": {
     "selector": "#opt-allowAnnotate",
     "type": "boolean",
     "engineKey": "allowAnnotate",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "security-protect"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "password-protect-pdf",
   "id": "password_protect_pdf_tool",
   "name": "password_protect_pdf_tool",
   "url": "https://pdftoolsbase.com/password-protect-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/password-protect-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF/A-style Converter",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-a-converter/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF/A-style Converter\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-level": {
      "type": "string",
      "enum": [
       "pdfa-1b",
       "pdfa-2b",
       "pdfa-3b"
      ]
     },
     "opt-embedFonts": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-level": {
     "selector": "#opt-level",
     "type": "string",
     "engineKey": "level",
     "eventSequence": []
    },
    "opt-embedFonts": {
     "selector": "#opt-embedFonts",
     "type": "boolean",
     "engineKey": "embedFonts",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-pdfa"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-a-converter",
   "id": "pdf_a_converter_tool",
   "name": "pdf_a_converter_tool",
   "url": "https://pdftoolsbase.com/pdf-a-converter/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-a-converter/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Compressor",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-compressor/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Compressor\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-compressor",
   "id": "pdf_compressor_tool",
   "name": "pdf_compressor_tool",
   "url": "https://pdftoolsbase.com/pdf-compressor/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-compressor/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Converter",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-converter/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Converter\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-converter",
   "id": "pdf_converter_tool",
   "name": "pdf_converter_tool",
   "url": "https://pdftoolsbase.com/pdf-converter/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-converter/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Creator",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-creator/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Creator\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-creator",
   "id": "pdf_creator_tool",
   "name": "pdf_creator_tool",
   "url": "https://pdftoolsbase.com/pdf-creator/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-creator/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Editor",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-editor/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Editor\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 200
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 10,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "top-left",
       "top-center",
       "top-right",
       "center-left",
       "center",
       "center-right",
       "bottom-left",
       "bottom-center",
       "bottom-right",
       "custom"
      ]
     },
     "opt-rotation": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "number",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "add-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-editor",
   "id": "pdf_editor_tool",
   "name": "pdf_editor_tool",
   "url": "https://pdftoolsbase.com/pdf-editor/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-editor/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF File Size Checker",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-file-size-checker/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF File Size Checker\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-showPageSizes": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-showPageSizes": {
     "selector": "#opt-showPageSizes",
     "type": "boolean",
     "engineKey": "showPageSizes",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-info"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-file-size-checker",
   "id": "pdf_file_size_checker_tool",
   "name": "pdf_file_size_checker_tool",
   "url": "https://pdftoolsbase.com/pdf-file-size-checker/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-file-size-checker/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Form Extractor",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-form-extractor/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Form Extractor\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-output": {
      "type": "string",
      "enum": [
       "json",
       "csv",
       "txt"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "forms-extract"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-form-extractor",
   "id": "pdf_form_extractor_tool",
   "name": "pdf_form_extractor_tool",
   "url": "https://pdftoolsbase.com/pdf-form-extractor/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-form-extractor/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Form Filler",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-form-filler/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Form Filler\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-values": {
      "type": "string"
     },
     "opt-flatten": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-values": {
     "selector": "#opt-values",
     "type": "string",
     "engineKey": "values",
     "eventSequence": []
    },
    "opt-flatten": {
     "selector": "#opt-flatten",
     "type": "boolean",
     "engineKey": "flatten",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "forms-fill"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-form-filler",
   "id": "pdf_form_filler_tool",
   "name": "pdf_form_filler_tool",
   "url": "https://pdftoolsbase.com/pdf-form-filler/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-form-filler/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Form to Excel",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-form-to-excel/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Form to Excel\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-includeEmpty": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-includeEmpty": {
     "selector": "#opt-includeEmpty",
     "type": "boolean",
     "engineKey": "includeEmpty",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "form-to-excel"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-form-to-excel",
   "id": "pdf_form_to_excel_tool",
   "name": "pdf_form_to_excel_tool",
   "url": "https://pdftoolsbase.com/pdf-form-to-excel/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-form-to-excel/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Forms",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-forms/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Forms\" tool. Creates a blank fillable PDF without a selected file, or uses a PDF selected with the visible file control as the base. Processing stays in your browser.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-fields": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 8,
      "maximum": 18
     },
     "opt-drawLabels": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-fields": {
     "selector": "#opt-fields",
     "type": "string",
     "engineKey": "fields",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-drawLabels": {
     "selector": "#opt-drawLabels",
     "type": "boolean",
     "engineKey": "drawLabels",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": false,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ],
     "description": "Optional: select a local file only when using the uploaded-file branch."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "forms-create"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-forms",
   "id": "pdf_forms_tool",
   "name": "pdf_forms_tool",
   "url": "https://pdftoolsbase.com/pdf-forms/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-forms/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Maker",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-maker/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Maker\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-maker",
   "id": "pdf_maker_tool",
   "name": "pdf_maker_tool",
   "url": "https://pdftoolsbase.com/pdf-maker/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-maker/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Metadata Editor",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-metadata-editor/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Metadata Editor\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-action": {
      "type": "string",
      "enum": [
       "view",
       "edit",
       "remove"
      ]
     },
     "opt-title": {
      "type": "string"
     },
     "opt-author": {
      "type": "string"
     },
     "opt-subject": {
      "type": "string"
     },
     "opt-keywords": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-action": {
     "selector": "#opt-action",
     "type": "string",
     "engineKey": "action",
     "eventSequence": []
    },
    "opt-title": {
     "selector": "#opt-title",
     "type": "string",
     "engineKey": "title",
     "eventSequence": []
    },
    "opt-author": {
     "selector": "#opt-author",
     "type": "string",
     "engineKey": "author",
     "eventSequence": []
    },
    "opt-subject": {
     "selector": "#opt-subject",
     "type": "string",
     "engineKey": "subject",
     "eventSequence": []
    },
    "opt-keywords": {
     "selector": "#opt-keywords",
     "type": "string",
     "engineKey": "keywords",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "metadata"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-metadata-editor",
   "id": "pdf_metadata_editor_tool",
   "name": "pdf_metadata_editor_tool",
   "url": "https://pdftoolsbase.com/pdf-metadata-editor/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-metadata-editor/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Metadata Viewer",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-metadata-viewer/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Metadata Viewer\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-action": {
      "type": "string",
      "enum": [
       "view",
       "edit",
       "remove"
      ]
     },
     "opt-title": {
      "type": "string"
     },
     "opt-author": {
      "type": "string"
     },
     "opt-subject": {
      "type": "string"
     },
     "opt-keywords": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-action": {
     "selector": "#opt-action",
     "type": "string",
     "engineKey": "action",
     "eventSequence": []
    },
    "opt-title": {
     "selector": "#opt-title",
     "type": "string",
     "engineKey": "title",
     "eventSequence": []
    },
    "opt-author": {
     "selector": "#opt-author",
     "type": "string",
     "engineKey": "author",
     "eventSequence": []
    },
    "opt-subject": {
     "selector": "#opt-subject",
     "type": "string",
     "engineKey": "subject",
     "eventSequence": []
    },
    "opt-keywords": {
     "selector": "#opt-keywords",
     "type": "string",
     "engineKey": "keywords",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "metadata"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-metadata-viewer",
   "id": "pdf_metadata_viewer_tool",
   "name": "pdf_metadata_viewer_tool",
   "url": "https://pdftoolsbase.com/pdf-metadata-viewer/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-metadata-viewer/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF OCR",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-ocr/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF OCR\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-lang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "docx",
       "searchable"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-lang": {
     "selector": "#opt-lang",
     "type": "string",
     "engineKey": "lang",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "ocr"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-ocr",
   "id": "pdf_ocr_tool",
   "name": "pdf_ocr_tool",
   "url": "https://pdftoolsbase.com/pdf-ocr/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-ocr/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Page Counter",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-page-counter/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Page Counter\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
   },
   "inputBindings": {},
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "page-count"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-page-counter",
   "id": "pdf_page_counter_tool",
   "name": "pdf_page_counter_tool",
   "url": "https://pdftoolsbase.com/pdf-page-counter/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-page-counter/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Page Number Remover",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-page-number-remover/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Page Number Remover\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-position": {
      "type": "string",
      "enum": [
       "bottom-center",
       "bottom-right",
       "bottom-left",
       "top-center",
       "top-right",
       "top-left",
       "all-bottom",
       "all-top"
      ]
     },
     "opt-boxWidth": {
      "type": "number",
      "minimum": 20,
      "maximum": 500
     },
     "opt-boxHeight": {
      "type": "number",
      "minimum": 10,
      "maximum": 100
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
     },
     "opt-fillColor": {
      "type": "string"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-boxWidth": {
     "selector": "#opt-boxWidth",
     "type": "number",
     "engineKey": "boxWidth",
     "eventSequence": []
    },
    "opt-boxHeight": {
     "selector": "#opt-boxHeight",
     "type": "number",
     "engineKey": "boxHeight",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fillColor": {
     "selector": "#opt-fillColor",
     "type": "string",
     "engineKey": "fillColor",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "remove-page-numbers"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-page-number-remover",
   "id": "pdf_page_number_remover_tool",
   "name": "pdf_page_number_remover_tool",
   "url": "https://pdftoolsbase.com/pdf-page-number-remover/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-page-number-remover/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Page Size Converter",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-page-size-converter/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Page Size Converter\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-preset": {
      "type": "string",
      "enum": [
       "a4",
       "a3",
       "a5",
       "letter",
       "legal",
       "tabloid",
       "custom"
      ]
     },
     "opt-customW": {
      "type": "number",
      "minimum": 50,
      "maximum": 5000
     },
     "opt-customH": {
      "type": "number",
      "minimum": 50,
      "maximum": 5000
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "scale",
       "stretch",
       "crop"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-preset": {
     "selector": "#opt-preset",
     "type": "string",
     "engineKey": "preset",
     "eventSequence": []
    },
    "opt-customW": {
     "selector": "#opt-customW",
     "type": "number",
     "engineKey": "customW",
     "eventSequence": []
    },
    "opt-customH": {
     "selector": "#opt-customH",
     "type": "number",
     "engineKey": "customH",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "resize"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-page-size-converter",
   "id": "pdf_page_size_converter_tool",
   "name": "pdf_page_size_converter_tool",
   "url": "https://pdftoolsbase.com/pdf-page-size-converter/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-page-size-converter/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Reader",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-reader/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Reader\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-scale": {
      "type": "string",
      "enum": [
       "0.5",
       "0.75",
       "1.0",
       "1.25",
       "1.5",
       "2.0"
      ]
     },
     "opt-maxPages": {
      "type": "number",
      "minimum": 1,
      "maximum": 200
     },
     "opt-showText": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-scale": {
     "selector": "#opt-scale",
     "type": "string",
     "engineKey": "scale",
     "eventSequence": []
    },
    "opt-maxPages": {
     "selector": "#opt-maxPages",
     "type": "number",
     "engineKey": "maxPages",
     "eventSequence": []
    },
    "opt-showText": {
     "selector": "#opt-showText",
     "type": "boolean",
     "engineKey": "showText",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "viewer"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-reader",
   "id": "pdf_reader_tool",
   "name": "pdf_reader_tool",
   "url": "https://pdftoolsbase.com/pdf-reader/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-reader/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Size Reducer in KB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-size-reducer-in-kb/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Size Reducer in KB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-size-reducer-in-kb",
   "id": "pdf_size_reducer_in_kb_tool",
   "name": "pdf_size_reducer_in_kb_tool",
   "url": "https://pdftoolsbase.com/pdf-size-reducer-in-kb/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-size-reducer-in-kb/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Size Reducer",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-size-reducer/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Size Reducer\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-size-reducer",
   "id": "pdf_size_reducer_tool",
   "name": "pdf_size_reducer_tool",
   "url": "https://pdftoolsbase.com/pdf-size-reducer/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-size-reducer/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Table to Excel",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-table-to-excel/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Table to Excel\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "xlsx",
       "csv"
      ]
     },
     "opt-separator": {
      "type": "string",
      "enum": [
       "spaces",
       "tab",
       "pipe"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-separator": {
     "selector": "#opt-separator",
     "type": "string",
     "engineKey": "separator",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-xlsx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-table-to-excel",
   "id": "pdf_table_to_excel_tool",
   "name": "pdf_table_to_excel_tool",
   "url": "https://pdftoolsbase.com/pdf-table-to-excel/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-table-to-excel/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Base64",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-base64/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Base64\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "plain",
       "datauri",
       "wrapped"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-base64"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-base64",
   "id": "pdf_to_base64_tool",
   "name": "pdf_to_base64_tool",
   "url": "https://pdftoolsbase.com/pdf-to-base64/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-base64/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to CSV",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-csv/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to CSV\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     },
     "opt-format": {
      "type": "string",
      "enum": [
       "txt",
       "csv",
       "html",
       "xml",
       "rtf"
      ]
     },
     "opt-encoding": {
      "type": "string",
      "enum": [
       "utf8",
       "ascii"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    },
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-encoding": {
     "selector": "#opt-encoding",
     "type": "string",
     "engineKey": "encoding",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-csv",
   "id": "pdf_to_csv_tool",
   "name": "pdf_to_csv_tool",
   "url": "https://pdftoolsbase.com/pdf-to-csv/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-csv/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to DOCX",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-docx/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to DOCX\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "text",
       "ocr"
      ]
     },
     "opt-ocrLang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-ocrLang": {
     "selector": "#opt-ocrLang",
     "type": "string",
     "engineKey": "ocrLang",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-docx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-docx",
   "id": "pdf_to_docx_tool",
   "name": "pdf_to_docx_tool",
   "url": "https://pdftoolsbase.com/pdf-to-docx/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-docx/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Editable Word",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-editable-word/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Editable Word\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "text",
       "ocr"
      ]
     },
     "opt-ocrLang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-ocrLang": {
     "selector": "#opt-ocrLang",
     "type": "string",
     "engineKey": "ocrLang",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-docx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-editable-word",
   "id": "pdf_to_editable_word_tool",
   "name": "pdf_to_editable_word_tool",
   "url": "https://pdftoolsbase.com/pdf-to-editable-word/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-editable-word/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to EPUB",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-epub/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to EPUB\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-title": {
      "type": "string"
     },
     "opt-author": {
      "type": "string"
     },
     "opt-chapterEvery": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-title": {
     "selector": "#opt-title",
     "type": "string",
     "engineKey": "title",
     "eventSequence": []
    },
    "opt-author": {
     "selector": "#opt-author",
     "type": "string",
     "engineKey": "author",
     "eventSequence": []
    },
    "opt-chapterEvery": {
     "selector": "#opt-chapterEvery",
     "type": "number",
     "engineKey": "chapterEvery",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-epub"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-epub",
   "id": "pdf_to_epub_tool",
   "name": "pdf_to_epub_tool",
   "url": "https://pdftoolsbase.com/pdf-to-epub/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-epub/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Excel",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-excel/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Excel\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "xlsx",
       "csv"
      ]
     },
     "opt-separator": {
      "type": "string",
      "enum": [
       "spaces",
       "tab",
       "pipe"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-separator": {
     "selector": "#opt-separator",
     "type": "string",
     "engineKey": "separator",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-xlsx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-excel",
   "id": "pdf_to_excel_tool",
   "name": "pdf_to_excel_tool",
   "url": "https://pdftoolsbase.com/pdf-to-excel/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-excel/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Grayscale",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-grayscale/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Grayscale\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "grayscale",
       "bw"
      ]
     },
     "opt-threshold": {
      "type": "number",
      "minimum": 0,
      "maximum": 255,
      "multipleOf": 1
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-threshold": {
     "selector": "#opt-threshold",
     "type": "number",
     "engineKey": "threshold",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "grayscale"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-grayscale",
   "id": "pdf_to_grayscale_tool",
   "name": "pdf_to_grayscale_tool",
   "url": "https://pdftoolsbase.com/pdf-to-grayscale/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-grayscale/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to HTML",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-html/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to HTML\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     },
     "opt-format": {
      "type": "string",
      "enum": [
       "txt",
       "csv",
       "html",
       "xml",
       "rtf"
      ]
     },
     "opt-encoding": {
      "type": "string",
      "enum": [
       "utf8",
       "ascii"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    },
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-encoding": {
     "selector": "#opt-encoding",
     "type": "string",
     "engineKey": "encoding",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-html",
   "id": "pdf_to_html_tool",
   "name": "pdf_to_html_tool",
   "url": "https://pdftoolsbase.com/pdf-to-html/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-html/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Image",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-image/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Image\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-image",
   "id": "pdf_to_image_tool",
   "name": "pdf_to_image_tool",
   "url": "https://pdftoolsbase.com/pdf-to-image/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-image/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to JPEG",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-jpeg/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to JPEG\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-jpeg",
   "id": "pdf_to_jpeg_tool",
   "name": "pdf_to_jpeg_tool",
   "url": "https://pdftoolsbase.com/pdf-to-jpeg/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-jpeg/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to JPG",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-jpg/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to JPG\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-jpg",
   "id": "pdf_to_jpg_tool",
   "name": "pdf_to_jpg_tool",
   "url": "https://pdftoolsbase.com/pdf-to-jpg/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-jpg/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to MOBI (browser-side EPUB)",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-mobi/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to MOBI (browser-side EPUB)\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-title": {
      "type": "string"
     },
     "opt-author": {
      "type": "string"
     },
     "opt-chapterEvery": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-title": {
     "selector": "#opt-title",
     "type": "string",
     "engineKey": "title",
     "eventSequence": []
    },
    "opt-author": {
     "selector": "#opt-author",
     "type": "string",
     "engineKey": "author",
     "eventSequence": []
    },
    "opt-chapterEvery": {
     "selector": "#opt-chapterEvery",
     "type": "number",
     "engineKey": "chapterEvery",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-epub"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-mobi",
   "id": "pdf_to_mobi_tool",
   "name": "pdf_to_mobi_tool",
   "url": "https://pdftoolsbase.com/pdf-to-mobi/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-mobi/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to PDF/A-style Converter (ISO 19005 Archival)",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-pdf-a/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to PDF/A-style Converter (ISO 19005 Archival)\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-level": {
      "type": "string",
      "enum": [
       "pdfa-1b",
       "pdfa-2b",
       "pdfa-3b"
      ]
     },
     "opt-embedFonts": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-level": {
     "selector": "#opt-level",
     "type": "string",
     "engineKey": "level",
     "eventSequence": []
    },
    "opt-embedFonts": {
     "selector": "#opt-embedFonts",
     "type": "boolean",
     "engineKey": "embedFonts",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-pdfa"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-pdf-a",
   "id": "pdf_to_pdf_a_tool",
   "name": "pdf_to_pdf_a_tool",
   "url": "https://pdftoolsbase.com/pdf-to-pdf-a/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-pdf-a/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to PDFA Converter",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-pdfa/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to PDFA Converter\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-level": {
      "type": "string",
      "enum": [
       "pdfa-1b",
       "pdfa-2b",
       "pdfa-3b"
      ]
     },
     "opt-embedFonts": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-level": {
     "selector": "#opt-level",
     "type": "string",
     "engineKey": "level",
     "eventSequence": []
    },
    "opt-embedFonts": {
     "selector": "#opt-embedFonts",
     "type": "boolean",
     "engineKey": "embedFonts",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-pdfa"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-pdfa",
   "id": "pdf_to_pdfa_tool",
   "name": "pdf_to_pdfa_tool",
   "url": "https://pdftoolsbase.com/pdf-to-pdfa/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-pdfa/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to PNG",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-png/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to PNG\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-png",
   "id": "pdf_to_png_tool",
   "name": "pdf_to_png_tool",
   "url": "https://pdftoolsbase.com/pdf-to-png/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-png/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to PowerPoint",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-powerpoint/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to PowerPoint\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. Approximate PDF-to-PowerPoint conversion. Original layout, fonts, editing structure, charts, vector objects, slide transitions and full visual fidelity may not be preserved.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "image",
       "text"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-ppt"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-powerpoint",
   "id": "pdf_to_powerpoint_tool",
   "name": "pdf_to_powerpoint_tool",
   "url": "https://pdftoolsbase.com/pdf-to-powerpoint/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-powerpoint/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to PPT",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-ppt/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to PPT\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. Approximate PDF-to-PowerPoint conversion. Original layout, fonts, editing structure, charts, vector objects, slide transitions and full visual fidelity may not be preserved.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "image",
       "text"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-ppt"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-ppt",
   "id": "pdf_to_ppt_tool",
   "name": "pdf_to_ppt_tool",
   "url": "https://pdftoolsbase.com/pdf-to-ppt/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-ppt/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to RTF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-rtf/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to RTF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     },
     "opt-format": {
      "type": "string",
      "enum": [
       "txt",
       "csv",
       "html",
       "xml",
       "rtf"
      ]
     },
     "opt-encoding": {
      "type": "string",
      "enum": [
       "utf8",
       "ascii"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    },
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-encoding": {
     "selector": "#opt-encoding",
     "type": "string",
     "engineKey": "encoding",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-rtf",
   "id": "pdf_to_rtf_tool",
   "name": "pdf_to_rtf_tool",
   "url": "https://pdftoolsbase.com/pdf-to-rtf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-rtf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to SVG",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-svg/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to SVG\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-svg",
   "id": "pdf_to_svg_tool",
   "name": "pdf_to_svg_tool",
   "url": "https://pdftoolsbase.com/pdf-to-svg/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-svg/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Text",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-text/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Text\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     },
     "opt-format": {
      "type": "string",
      "enum": [
       "txt",
       "csv",
       "html",
       "xml",
       "rtf"
      ]
     },
     "opt-encoding": {
      "type": "string",
      "enum": [
       "utf8",
       "ascii"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    },
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-encoding": {
     "selector": "#opt-encoding",
     "type": "string",
     "engineKey": "encoding",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-text",
   "id": "pdf_to_text_tool",
   "name": "pdf_to_text_tool",
   "url": "https://pdftoolsbase.com/pdf-to-text/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-text/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to TIFF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-tiff/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to TIFF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-tiff",
   "id": "pdf_to_tiff_tool",
   "name": "pdf_to_tiff_tool",
   "url": "https://pdftoolsbase.com/pdf-to-tiff/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-tiff/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to WebP",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-webp/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to WebP\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-format": {
      "type": "string",
      "enum": [
       "png",
       "jpg",
       "webp",
       "tiff",
       "svg"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "72",
       "96",
       "150",
       "200",
       "300",
       "600"
      ]
     },
     "opt-quality": {
      "type": "number",
      "minimum": 30,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-transparent": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "auto",
       "zip"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-transparent": {
     "selector": "#opt-transparent",
     "type": "boolean",
     "engineKey": "transparent",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-image"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-webp",
   "id": "pdf_to_webp_tool",
   "name": "pdf_to_webp_tool",
   "url": "https://pdftoolsbase.com/pdf-to-webp/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-webp/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to Word",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-word/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to Word\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "text",
       "ocr"
      ]
     },
     "opt-ocrLang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-ocrLang": {
     "selector": "#opt-ocrLang",
     "type": "string",
     "engineKey": "ocrLang",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-docx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-word",
   "id": "pdf_to_word_tool",
   "name": "pdf_to_word_tool",
   "url": "https://pdftoolsbase.com/pdf-to-word/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-word/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF to XML",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-to-xml/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF to XML\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     },
     "opt-format": {
      "type": "string",
      "enum": [
       "txt",
       "csv",
       "html",
       "xml",
       "rtf"
      ]
     },
     "opt-encoding": {
      "type": "string",
      "enum": [
       "utf8",
       "ascii"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    },
    "opt-format": {
     "selector": "#opt-format",
     "type": "string",
     "engineKey": "format",
     "eventSequence": []
    },
    "opt-encoding": {
     "selector": "#opt-encoding",
     "type": "string",
     "engineKey": "encoding",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-to-xml",
   "id": "pdf_to_xml_tool",
   "name": "pdf_to_xml_tool",
   "url": "https://pdftoolsbase.com/pdf-to-xml/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-to-xml/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF Viewer",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/pdf-viewer/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF Viewer\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-scale": {
      "type": "string",
      "enum": [
       "0.5",
       "0.75",
       "1.0",
       "1.25",
       "1.5",
       "2.0"
      ]
     },
     "opt-maxPages": {
      "type": "number",
      "minimum": 1,
      "maximum": 200
     },
     "opt-showText": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-scale": {
     "selector": "#opt-scale",
     "type": "string",
     "engineKey": "scale",
     "eventSequence": []
    },
    "opt-maxPages": {
     "selector": "#opt-maxPages",
     "type": "number",
     "engineKey": "maxPages",
     "eventSequence": []
    },
    "opt-showText": {
     "selector": "#opt-showText",
     "type": "boolean",
     "engineKey": "showText",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "viewer"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "pdf-viewer",
   "id": "pdf_viewer_tool",
   "name": "pdf_viewer_tool",
   "url": "https://pdftoolsbase.com/pdf-viewer/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/pdf-viewer/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Photo to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/photo-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Photo to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "photo-to-pdf",
   "id": "photo_to_pdf_tool",
   "name": "photo_to_pdf_tool",
   "url": "https://pdftoolsbase.com/photo-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/photo-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Photos to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/photos-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Photos to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".jpg",
      ".jpeg",
      ".png",
      ".gif",
      ".bmp",
      ".webp",
      ".tiff",
      ".tif",
      ".heic",
      ".heif",
      ".svg",
      "image/*",
      "image/svg+xml",
      "image/heic",
      "image/heif"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "photos-to-pdf",
   "id": "photos_to_pdf_tool",
   "name": "photos_to_pdf_tool",
   "url": "https://pdftoolsbase.com/photos-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/photos-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PNG to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/png-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"PNG to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".png",
      "image/png"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "png-to-pdf",
   "id": "png_to_pdf_tool",
   "name": "png_to_pdf_tool",
   "url": "https://pdftoolsbase.com/png-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/png-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PowerPoint to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/powerpoint-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"PowerPoint to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pptx",
      "application/vnd.openxmlformats-officedocument.presentationml.presentation"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "powerpoint-to-pdf",
   "id": "powerpoint_to_pdf_tool",
   "name": "powerpoint_to_pdf_tool",
   "url": "https://pdftoolsbase.com/powerpoint-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/powerpoint-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PPT to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/ppt-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"PPT to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pptx",
      "application/vnd.openxmlformats-officedocument.presentationml.presentation"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "ppt-to-pdf",
   "id": "ppt_to_pdf_tool",
   "name": "ppt_to_pdf_tool",
   "url": "https://pdftoolsbase.com/ppt-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/ppt-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Protect PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/protect-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Protect PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns an AES-256 revision 6 encrypted PDF preserving original page content; successful files include actual MIME type and byte size. Reader permissions are advisory; the owner password grants full access.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-password": {
      "type": "string"
     },
     "opt-password2": {
      "type": "string"
     },
     "opt-userPwSame": {
      "type": "boolean"
     },
     "opt-userPassword": {
      "type": "string"
     },
     "opt-allowPrint": {
      "type": "string",
      "enum": [
       "highRes",
       "lowRes",
       "no"
      ]
     },
     "opt-allowCopy": {
      "type": "boolean"
     },
     "opt-allowModify": {
      "type": "boolean"
     },
     "opt-allowAnnotate": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-password": {
     "selector": "#opt-password",
     "type": "string",
     "engineKey": "password",
     "eventSequence": []
    },
    "opt-password2": {
     "selector": "#opt-password2",
     "type": "string",
     "engineKey": "password2",
     "eventSequence": []
    },
    "opt-userPwSame": {
     "selector": "#opt-userPwSame",
     "type": "boolean",
     "engineKey": "userPwSame",
     "eventSequence": []
    },
    "opt-userPassword": {
     "selector": "#opt-userPassword",
     "type": "string",
     "engineKey": "userPassword",
     "eventSequence": []
    },
    "opt-allowPrint": {
     "selector": "#opt-allowPrint",
     "type": "string",
     "engineKey": "allowPrint",
     "eventSequence": []
    },
    "opt-allowCopy": {
     "selector": "#opt-allowCopy",
     "type": "boolean",
     "engineKey": "allowCopy",
     "eventSequence": []
    },
    "opt-allowModify": {
     "selector": "#opt-allowModify",
     "type": "boolean",
     "engineKey": "allowModify",
     "eventSequence": []
    },
    "opt-allowAnnotate": {
     "selector": "#opt-allowAnnotate",
     "type": "boolean",
     "engineKey": "allowAnnotate",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "security-protect"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "protect-pdf",
   "id": "protect_pdf_tool",
   "name": "protect_pdf_tool",
   "url": "https://pdftoolsbase.com/protect-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/protect-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Redact PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/redact-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Redact PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-searchText": {
      "type": "string"
     },
     "opt-caseSensitive": {
      "type": "boolean"
     },
     "opt-extraPad": {
      "type": "number",
      "minimum": 0,
      "maximum": 10,
      "multipleOf": 1
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "permanent",
       "flatten",
       "whiteout"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-flattenAll": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-searchText": {
     "selector": "#opt-searchText",
     "type": "string",
     "engineKey": "searchText",
     "eventSequence": []
    },
    "opt-caseSensitive": {
     "selector": "#opt-caseSensitive",
     "type": "boolean",
     "engineKey": "caseSensitive",
     "eventSequence": []
    },
    "opt-extraPad": {
     "selector": "#opt-extraPad",
     "type": "number",
     "engineKey": "extraPad",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-flattenAll": {
     "selector": "#opt-flattenAll",
     "type": "boolean",
     "engineKey": "flattenAll",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "redact"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "redact-pdf",
   "id": "redact_pdf_tool",
   "name": "redact_pdf_tool",
   "url": "https://pdftoolsbase.com/redact-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/redact-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Reduce PDF Size",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/reduce-pdf-size/",
   "processingProfile": "local_file",
   "description": "On-page \"Reduce PDF Size\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-quality": {
      "type": "number",
      "minimum": 10,
      "maximum": 95,
      "multipleOf": 5
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "96",
       "120",
       "150",
       "200",
       "300"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "quality",
       "target",
       "smallest",
       "high"
      ]
     },
     "opt-targetKB": {
      "type": "number",
      "minimum": 20,
      "maximum": 51200
     },
     "opt-grayscale": {
      "type": "boolean"
     },
     "opt-stripMeta": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-quality": {
     "selector": "#opt-quality",
     "type": "number",
     "engineKey": "quality",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-targetKB": {
     "selector": "#opt-targetKB",
     "type": "number",
     "engineKey": "targetKB",
     "eventSequence": []
    },
    "opt-grayscale": {
     "selector": "#opt-grayscale",
     "type": "boolean",
     "engineKey": "grayscale",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "compress"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "reduce-pdf-size",
   "id": "reduce_pdf_size_tool",
   "name": "reduce_pdf_size_tool",
   "url": "https://pdftoolsbase.com/reduce-pdf-size/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/reduce-pdf-size/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove Blank Pages from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-blank-pages-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove Blank Pages from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-blank-pages-from-pdf",
   "id": "remove_blank_pages_from_pdf_tool",
   "name": "remove_blank_pages_from_pdf_tool",
   "url": "https://pdftoolsbase.com/remove-blank-pages-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-blank-pages-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove Images from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-images-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove Images from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-preserveLayout": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-preserveLayout": {
     "selector": "#opt-preserveLayout",
     "type": "boolean",
     "engineKey": "preserveLayout",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "remove-images"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-images-from-pdf",
   "id": "remove_images_from_pdf_tool",
   "name": "remove_images_from_pdf_tool",
   "url": "https://pdftoolsbase.com/remove-images-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-images-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove Metadata from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-metadata-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove Metadata from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-action": {
      "type": "string",
      "enum": [
       "view",
       "edit",
       "remove"
      ]
     },
     "opt-title": {
      "type": "string"
     },
     "opt-author": {
      "type": "string"
     },
     "opt-subject": {
      "type": "string"
     },
     "opt-keywords": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-action": {
     "selector": "#opt-action",
     "type": "string",
     "engineKey": "action",
     "eventSequence": []
    },
    "opt-title": {
     "selector": "#opt-title",
     "type": "string",
     "engineKey": "title",
     "eventSequence": []
    },
    "opt-author": {
     "selector": "#opt-author",
     "type": "string",
     "engineKey": "author",
     "eventSequence": []
    },
    "opt-subject": {
     "selector": "#opt-subject",
     "type": "string",
     "engineKey": "subject",
     "eventSequence": []
    },
    "opt-keywords": {
     "selector": "#opt-keywords",
     "type": "string",
     "engineKey": "keywords",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "metadata"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-metadata-from-pdf",
   "id": "remove_metadata_from_pdf_tool",
   "name": "remove_metadata_from_pdf_tool",
   "url": "https://pdftoolsbase.com/remove-metadata-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-metadata-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove Pages from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-pages-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove Pages from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-pages-from-pdf",
   "id": "remove_pages_from_pdf_tool",
   "name": "remove_pages_from_pdf_tool",
   "url": "https://pdftoolsbase.com/remove-pages-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-pages-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove PDF Margins",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-pdf-margins/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove PDF Margins\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-applyScope": {
      "type": "string",
      "enum": [
       "all",
       "current",
       "drawn-only"
      ]
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "auto",
       "manual",
       "preset"
      ]
     },
     "opt-marginTop": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-marginBottom": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-marginLeft": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-marginRight": {
      "type": "number",
      "minimum": 0,
      "maximum": 500
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-applyScope": {
     "selector": "#opt-applyScope",
     "type": "string",
     "engineKey": "applyScope",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-marginTop": {
     "selector": "#opt-marginTop",
     "type": "number",
     "engineKey": "marginTop",
     "eventSequence": []
    },
    "opt-marginBottom": {
     "selector": "#opt-marginBottom",
     "type": "number",
     "engineKey": "marginBottom",
     "eventSequence": []
    },
    "opt-marginLeft": {
     "selector": "#opt-marginLeft",
     "type": "number",
     "engineKey": "marginLeft",
     "eventSequence": []
    },
    "opt-marginRight": {
     "selector": "#opt-marginRight",
     "type": "number",
     "engineKey": "marginRight",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "crop"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-pdf-margins",
   "id": "remove_pdf_margins_tool",
   "name": "remove_pdf_margins_tool",
   "url": "https://pdftoolsbase.com/remove-pdf-margins/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-pdf-margins/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove PDF Password",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-pdf-password/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove PDF Password\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-password": {
      "type": "string"
     },
     "opt-stripMeta": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-password": {
     "selector": "#opt-password",
     "type": "string",
     "engineKey": "password",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "security-unlock"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-pdf-password",
   "id": "remove_pdf_password_tool",
   "name": "remove_pdf_password_tool",
   "url": "https://pdftoolsbase.com/remove-pdf-password/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-pdf-password/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Remove Watermark from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/remove-watermark-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Remove Watermark from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. Visually covers a selected area of the page. It does not automatically detect a watermark, the underlying text or object may remain in the file, and permanent object removal is not guaranteed.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-boxes": {
      "type": "string"
     },
     "opt-fillColor": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 50,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-borderColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-boxes": {
     "selector": "#opt-boxes",
     "type": "string",
     "engineKey": "boxes",
     "eventSequence": []
    },
    "opt-fillColor": {
     "selector": "#opt-fillColor",
     "type": "string",
     "engineKey": "fillColor",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-borderColor": {
     "selector": "#opt-borderColor",
     "type": "string",
     "engineKey": "borderColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "remove-watermark"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "remove-watermark-from-pdf",
   "id": "remove_watermark_from_pdf_tool",
   "name": "remove_watermark_from_pdf_tool",
   "url": "https://pdftoolsbase.com/remove-watermark-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/remove-watermark-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Reorder PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/reorder-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Reorder PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "reorder-pdf-pages",
   "id": "reorder_pdf_pages_tool",
   "name": "reorder_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/reorder-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/reorder-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Repair PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/repair-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Repair PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. Best-effort mild structural load and re-save of a readable PDF. This is not forensic recovery: it cannot recover missing bytes and is not guaranteed to repair every malformed or corrupt PDF.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-mode": {
      "type": "string",
      "enum": [
       "resave",
       "rasterize"
      ]
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "repair"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "repair-pdf",
   "id": "repair_pdf_tool",
   "name": "repair_pdf_tool",
   "url": "https://pdftoolsbase.com/repair-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/repair-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Replace Text in PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/replace-text-in-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Replace Text in PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-searchText": {
      "type": "string"
     },
     "opt-replaceText": {
      "type": "string"
     },
     "opt-caseSensitive": {
      "type": "boolean"
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 6,
      "maximum": 48
     },
     "opt-textColor": {
      "type": "string"
     },
     "opt-mode": {
      "type": "string",
      "enum": [
       "overlay",
       "permanent"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-searchText": {
     "selector": "#opt-searchText",
     "type": "string",
     "engineKey": "searchText",
     "eventSequence": []
    },
    "opt-replaceText": {
     "selector": "#opt-replaceText",
     "type": "string",
     "engineKey": "replaceText",
     "eventSequence": []
    },
    "opt-caseSensitive": {
     "selector": "#opt-caseSensitive",
     "type": "boolean",
     "engineKey": "caseSensitive",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    },
    "opt-mode": {
     "selector": "#opt-mode",
     "type": "string",
     "engineKey": "mode",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "replace-text"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "replace-text-in-pdf",
   "id": "replace_text_in_pdf_tool",
   "name": "replace_text_in_pdf_tool",
   "url": "https://pdftoolsbase.com/replace-text-in-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/replace-text-in-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Resize PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/resize-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Resize PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-preset": {
      "type": "string",
      "enum": [
       "a4",
       "a3",
       "a5",
       "letter",
       "legal",
       "tabloid",
       "custom"
      ]
     },
     "opt-customW": {
      "type": "number",
      "minimum": 50,
      "maximum": 5000
     },
     "opt-customH": {
      "type": "number",
      "minimum": 50,
      "maximum": 5000
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "scale",
       "stretch",
       "crop"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-preset": {
     "selector": "#opt-preset",
     "type": "string",
     "engineKey": "preset",
     "eventSequence": []
    },
    "opt-customW": {
     "selector": "#opt-customW",
     "type": "number",
     "engineKey": "customW",
     "eventSequence": []
    },
    "opt-customH": {
     "selector": "#opt-customH",
     "type": "number",
     "engineKey": "customH",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "resize"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "resize-pdf",
   "id": "resize_pdf_tool",
   "name": "resize_pdf_tool",
   "url": "https://pdftoolsbase.com/resize-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/resize-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Reverse PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/reverse-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Reverse PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "reverse-pdf-pages",
   "id": "reverse_pdf_pages_tool",
   "name": "reverse_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/reverse-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/reverse-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Rotate PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/rotate-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Rotate PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-angle": {
      "type": "string",
      "enum": [
       "90",
       "180",
       "270"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-angle": {
     "selector": "#opt-angle",
     "type": "string",
     "engineKey": "angle",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "rotate"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "rotate-pdf",
   "id": "rotate_pdf_tool",
   "name": "rotate_pdf_tool",
   "url": "https://pdftoolsbase.com/rotate-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/rotate-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "RTF to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/rtf-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"RTF to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".rtf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "rtf-to-pdf",
   "id": "rtf_to_pdf_tool",
   "name": "rtf_to_pdf_tool",
   "url": "https://pdftoolsbase.com/rtf-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/rtf-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Scan to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/scan-to-pdf/",
   "processingProfile": "local_only",
   "description": "On-page \"Scan to PDF\" tool. Runs entirely in your browser; the values you enter are processed on-device and are not sent to a server by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-filter": {
      "type": "string",
      "enum": [
       "none",
       "gray",
       "bw",
       "auto"
      ]
     },
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "auto"
      ]
     },
     "opt-jpgQuality": {
      "type": "number",
      "minimum": 50,
      "maximum": 95,
      "multipleOf": 1
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-filter": {
     "selector": "#opt-filter",
     "type": "string",
     "engineKey": "filter",
     "eventSequence": []
    },
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-jpgQuality": {
     "selector": "#opt-jpgQuality",
     "type": "number",
     "engineKey": "jpgQuality",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#output",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": false,
   "timeoutMs": 30000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "scan-upload",
     "selector": "#scan-upload",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "acceptedTypes": [
      "image/*"
     ],
     "condition": "Optional file upload; source preparation requires at least one successfully decoded uploaded or camera-captured scan page."
    }
   ],
   "fileRequirementMode": "allOf",
   "successConditions": [
    {
     "selector": "#output",
     "class": "hidden",
     "absent": true
    }
   ],
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "cameraAction": {
    "selectors": [
     "#scan-start-cam"
    ],
    "mode": "manual_only",
    "note": "Camera capture requires explicit user action and permission; automated execution processes already-selected images via Process."
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "scan"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "scan-to-pdf",
   "id": "scan_to_pdf_tool",
   "name": "scan_to_pdf_tool",
   "url": "https://pdftoolsbase.com/scan-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/scan-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Scanned PDF to Word",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/scanned-pdf-to-word/",
   "processingProfile": "local_file",
   "description": "On-page \"Scanned PDF to Word\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-lang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "docx",
       "searchable"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-lang": {
     "selector": "#opt-lang",
     "type": "string",
     "engineKey": "lang",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "ocr"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "scanned-pdf-to-word",
   "id": "scanned_pdf_to_word_tool",
   "name": "scanned_pdf_to_word_tool",
   "url": "https://pdftoolsbase.com/scanned-pdf-to-word/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/scanned-pdf-to-word/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Searchable PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/searchable-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Searchable PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-lang": {
      "type": "string",
      "enum": [
       "eng",
       "hin",
       "eng+hin"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-dpi": {
      "type": "string",
      "enum": [
       "150",
       "200",
       "300"
      ]
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "txt",
       "docx",
       "searchable"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-lang": {
     "selector": "#opt-lang",
     "type": "string",
     "engineKey": "lang",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-dpi": {
     "selector": "#opt-dpi",
     "type": "string",
     "engineKey": "dpi",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "ocr"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "searchable-pdf",
   "id": "searchable_pdf_tool",
   "name": "searchable_pdf_tool",
   "url": "https://pdftoolsbase.com/searchable-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/searchable-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Separate PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/separate-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Separate PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-every": {
      "type": "number",
      "minimum": 1,
      "maximum": 1000
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-every": {
     "selector": "#opt-every",
     "type": "number",
     "engineKey": "every",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "split-every"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "separate-pdf-pages",
   "id": "separate_pdf_pages_tool",
   "name": "separate_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/separate-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/separate-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Sign PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/sign-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Sign PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-sigMode": {
      "type": "string",
      "enum": [
       "upload",
       "type",
       "draw"
      ]
     },
     "opt-sigText": {
      "type": "string"
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "bottom-right",
       "bottom-left",
       "bottom-center",
       "top-right",
       "custom"
      ]
     },
     "opt-imgWidth": {
      "type": "number",
      "minimum": 40,
      "maximum": 400
     },
     "opt-customX": {
      "type": "number",
      "minimum": 0
     },
     "opt-customY": {
      "type": "number",
      "minimum": 0
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-sigMode": {
     "selector": "#opt-sigMode",
     "type": "string",
     "engineKey": "sigMode",
     "eventSequence": []
    },
    "opt-sigText": {
     "selector": "#opt-sigText",
     "type": "string",
     "engineKey": "sigText",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-imgWidth": {
     "selector": "#opt-imgWidth",
     "type": "number",
     "engineKey": "imgWidth",
     "eventSequence": []
    },
    "opt-customX": {
     "selector": "#opt-customX",
     "type": "number",
     "engineKey": "customX",
     "eventSequence": []
    },
    "opt-customY": {
     "selector": "#opt-customY",
     "type": "number",
     "engineKey": "customY",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "sign"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "sign-pdf",
   "id": "sign_pdf_tool",
   "name": "sign_pdf_tool",
   "url": "https://pdftoolsbase.com/sign-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/sign-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Sort PDF Pages",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/sort-pdf-pages/",
   "processingProfile": "local_file",
   "description": "On-page \"Sort PDF Pages\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageOp": {
      "type": "string",
      "enum": [
       "delete",
       "extract",
       "reorder",
       "reverse",
       "duplicate",
       "odd",
       "even",
       "blank",
       "removeBlank"
      ]
     },
     "opt-blankThreshold": {
      "type": "string",
      "enum": [
       "strict",
       "normal",
       "loose"
      ]
     },
     "opt-pages": {
      "type": "string"
     },
     "opt-insertAt": {
      "type": "string"
     },
     "opt-blankSize": {
      "type": "string",
      "enum": [
       "match",
       "a4",
       "letter"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageOp": {
     "selector": "#opt-pageOp",
     "type": "string",
     "engineKey": "pageOp",
     "eventSequence": []
    },
    "opt-blankThreshold": {
     "selector": "#opt-blankThreshold",
     "type": "string",
     "engineKey": "blankThreshold",
     "eventSequence": []
    },
    "opt-pages": {
     "selector": "#opt-pages",
     "type": "string",
     "engineKey": "pages",
     "eventSequence": []
    },
    "opt-insertAt": {
     "selector": "#opt-insertAt",
     "type": "string",
     "engineKey": "insertAt",
     "eventSequence": []
    },
    "opt-blankSize": {
     "selector": "#opt-blankSize",
     "type": "string",
     "engineKey": "blankSize",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pages"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "sort-pdf-pages",
   "id": "sort_pdf_pages_tool",
   "name": "sort_pdf_pages_tool",
   "url": "https://pdftoolsbase.com/sort-pdf-pages/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/sort-pdf-pages/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Split PDF by Bookmarks",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/split-pdf-by-bookmarks/",
   "processingProfile": "local_file",
   "description": "On-page \"Split PDF by Bookmarks\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-level": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "all"
      ]
     },
     "opt-useBookmarkTitle": {
      "type": "boolean"
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-level": {
     "selector": "#opt-level",
     "type": "string",
     "engineKey": "level",
     "eventSequence": []
    },
    "opt-useBookmarkTitle": {
     "selector": "#opt-useBookmarkTitle",
     "type": "boolean",
     "engineKey": "useBookmarkTitle",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "split-bookmarks"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "split-pdf-by-bookmarks",
   "id": "split_pdf_by_bookmarks_tool",
   "name": "split_pdf_by_bookmarks_tool",
   "url": "https://pdftoolsbase.com/split-pdf-by-bookmarks/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/split-pdf-by-bookmarks/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Split PDF by Size",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/split-pdf-by-size/",
   "processingProfile": "local_file",
   "description": "On-page \"Split PDF by Size\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-targetMB": {
      "type": "string",
      "enum": [
       "0.5",
       "1",
       "2",
       "5",
       "10",
       "20",
       "custom"
      ]
     },
     "opt-customMB": {
      "type": "number",
      "minimum": 0.1
     },
     "opt-namePrefix": {
      "type": "string"
     },
     "opt-method": {
      "type": "string",
      "enum": [
       "estimate",
       "exact"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-targetMB": {
     "selector": "#opt-targetMB",
     "type": "string",
     "engineKey": "targetMB",
     "eventSequence": []
    },
    "opt-customMB": {
     "selector": "#opt-customMB",
     "type": "number",
     "engineKey": "customMB",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    },
    "opt-method": {
     "selector": "#opt-method",
     "type": "string",
     "engineKey": "method",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "split-size"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "split-pdf-by-size",
   "id": "split_pdf_by_size_tool",
   "name": "split_pdf_by_size_tool",
   "url": "https://pdftoolsbase.com/split-pdf-by-size/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/split-pdf-by-size/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Split PDF Every Page",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/split-pdf-every-page/",
   "processingProfile": "local_file",
   "description": "On-page \"Split PDF Every Page\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-every": {
      "type": "number",
      "minimum": 1,
      "maximum": 1000
     },
     "opt-pageRange": {
      "type": "string"
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-every": {
     "selector": "#opt-every",
     "type": "number",
     "engineKey": "every",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "split-every"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "split-pdf-every-page",
   "id": "split_pdf_every_page_tool",
   "name": "split_pdf_every_page_tool",
   "url": "https://pdftoolsbase.com/split-pdf-every-page/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/split-pdf-every-page/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Split PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/split-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Split PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-ranges": {
      "type": "string"
     },
     "opt-outputMode": {
      "type": "string",
      "enum": [
       "zip",
       "merged"
      ]
     },
     "opt-namePrefix": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-ranges": {
     "selector": "#opt-ranges",
     "type": "string",
     "engineKey": "ranges",
     "eventSequence": []
    },
    "opt-outputMode": {
     "selector": "#opt-outputMode",
     "type": "string",
     "engineKey": "outputMode",
     "eventSequence": []
    },
    "opt-namePrefix": {
     "selector": "#opt-namePrefix",
     "type": "string",
     "engineKey": "namePrefix",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "split-ranges"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "split-pdf",
   "id": "split_pdf_tool",
   "name": "split_pdf_tool",
   "url": "https://pdftoolsbase.com/split-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/split-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Stamp PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/stamp-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Stamp PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-wmType": {
      "type": "string",
      "enum": [
       "text",
       "image"
      ]
     },
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 10,
      "maximum": 300
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 5,
      "maximum": 80,
      "multipleOf": 5
     },
     "opt-rotation": {
      "type": "string",
      "enum": [
       "0",
       "-45",
       "45",
       "90"
      ]
     },
     "opt-layout": {
      "type": "string",
      "enum": [
       "center",
       "tile"
      ]
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "center",
       "top-left",
       "top-center",
       "top-right",
       "middle-left",
       "middle-right",
       "bottom-left",
       "bottom-center",
       "bottom-right"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-wmType": {
     "selector": "#opt-wmType",
     "type": "string",
     "engineKey": "wmType",
     "eventSequence": []
    },
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "string",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-layout": {
     "selector": "#opt-layout",
     "type": "string",
     "engineKey": "layout",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "watermark"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "stamp-pdf",
   "id": "stamp_pdf_tool",
   "name": "stamp_pdf_tool",
   "url": "https://pdftoolsbase.com/stamp-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/stamp-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "SVG to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/svg-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"SVG to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".svg",
      "image/svg+xml"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "svg-to-pdf",
   "id": "svg_to_pdf_tool",
   "name": "svg_to_pdf_tool",
   "url": "https://pdftoolsbase.com/svg-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/svg-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Table Extractor from PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/table-extractor-from-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Table Extractor from PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageRange": {
      "type": "string"
     },
     "opt-output": {
      "type": "string",
      "enum": [
       "xlsx",
       "csv"
      ]
     },
     "opt-separator": {
      "type": "string",
      "enum": [
       "spaces",
       "tab",
       "pipe"
      ]
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    },
    "opt-output": {
     "selector": "#opt-output",
     "type": "string",
     "engineKey": "output",
     "eventSequence": []
    },
    "opt-separator": {
     "selector": "#opt-separator",
     "type": "string",
     "engineKey": "separator",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "pdf-to-xlsx"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "table-extractor-from-pdf",
   "id": "table_extractor_from_pdf_tool",
   "name": "table_extractor_from_pdf_tool",
   "url": "https://pdftoolsbase.com/table-extractor-from-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/table-extractor-from-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Text to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/text-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Text to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".txt",
      ".md",
      "text/plain"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "text-to-pdf",
   "id": "text_to_pdf_tool",
   "name": "text_to_pdf_tool",
   "url": "https://pdftoolsbase.com/text-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/text-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "TIFF to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/tiff-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"TIFF to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".tiff",
      ".tif",
      "image/tiff"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "tiff-to-pdf",
   "id": "tiff_to_pdf_tool",
   "name": "tiff_to_pdf_tool",
   "url": "https://pdftoolsbase.com/tiff-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/tiff-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Unlock PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/unlock-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Unlock PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-password": {
      "type": "string"
     },
     "opt-stripMeta": {
      "type": "boolean"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-password": {
     "selector": "#opt-password",
     "type": "string",
     "engineKey": "password",
     "eventSequence": []
    },
    "opt-stripMeta": {
     "selector": "#opt-stripMeta",
     "type": "boolean",
     "engineKey": "stripMeta",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "security-unlock"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "unlock-pdf",
   "id": "unlock_pdf_tool",
   "name": "unlock_pdf_tool",
   "url": "https://pdftoolsbase.com/unlock-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/unlock-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "URL to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/url-to-pdf/",
   "processingProfile": "user_selected_destination",
   "description": "On-page \"URL to PDF\" tool. Opens the URL you supply in a new browser tab/window for a print-to-PDF workflow; the destination receives the normal browser request and connection metadata. This site does not fetch or proxy the page for you.",
   "outputDescription": "A URL requests a browser tab and returns action_required/requested_unverified; pasted HTML can produce an actual PDF artifact.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-url": {
      "type": "string"
     },
     "opt-htmlContent": {
      "type": "string"
     },
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 40,
      "multipleOf": 1
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-url": {
     "selector": "#opt-url",
     "type": "string",
     "engineKey": "url",
     "eventSequence": []
    },
    "opt-htmlContent": {
     "selector": "#opt-htmlContent",
     "type": "string",
     "engineKey": "htmlContent",
     "eventSequence": []
    },
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": null,
   "errorSelector": null,
   "completionStrategy": "adapter",
   "timeoutMs": 20000,
   "readOnlyHint": false,
   "consequentialHint": true,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [],
   "adapterKey": "pdf_engine",
   "fileRequirementMode": "allOf",
   "requiresSelectedFile": false,
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "url-to-pdf"
   },
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "url-to-pdf",
   "id": "url_to_pdf_tool",
   "name": "url_to_pdf_tool",
   "url": "https://pdftoolsbase.com/url-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/url-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "PDF/A Indicator Check",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/validate-pdf-a/",
   "processingProfile": "local_file",
   "description": "On-page \"PDF/A Indicator Check\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
   },
   "inputBindings": {},
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "validate-pdfa"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "validate-pdf-a",
   "id": "validate_pdf_a_tool",
   "name": "validate_pdf_a_tool",
   "url": "https://pdftoolsbase.com/validate-pdf-a/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/validate-pdf-a/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Watermark PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/watermark-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Watermark PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-wmType": {
      "type": "string",
      "enum": [
       "text",
       "image"
      ]
     },
     "opt-text": {
      "type": "string"
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 10,
      "maximum": 300
     },
     "opt-color": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 5,
      "maximum": 80,
      "multipleOf": 5
     },
     "opt-rotation": {
      "type": "string",
      "enum": [
       "0",
       "-45",
       "45",
       "90"
      ]
     },
     "opt-layout": {
      "type": "string",
      "enum": [
       "center",
       "tile"
      ]
     },
     "opt-position": {
      "type": "string",
      "enum": [
       "center",
       "top-left",
       "top-center",
       "top-right",
       "middle-left",
       "middle-right",
       "bottom-left",
       "bottom-center",
       "bottom-right"
      ]
     },
     "opt-pageRange": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-wmType": {
     "selector": "#opt-wmType",
     "type": "string",
     "engineKey": "wmType",
     "eventSequence": []
    },
    "opt-text": {
     "selector": "#opt-text",
     "type": "string",
     "engineKey": "text",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-color": {
     "selector": "#opt-color",
     "type": "string",
     "engineKey": "color",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-rotation": {
     "selector": "#opt-rotation",
     "type": "string",
     "engineKey": "rotation",
     "eventSequence": []
    },
    "opt-layout": {
     "selector": "#opt-layout",
     "type": "string",
     "engineKey": "layout",
     "eventSequence": []
    },
    "opt-position": {
     "selector": "#opt-position",
     "type": "string",
     "engineKey": "position",
     "eventSequence": []
    },
    "opt-pageRange": {
     "selector": "#opt-pageRange",
     "type": "string",
     "engineKey": "pageRange",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    },
    {
     "id": "opt-image",
     "selector": "#opt-image",
     "selectionMode": "manual_only",
     "required": false,
     "minFiles": 0,
     "maxFiles": 1,
     "acceptedTypes": [
      "image/png",
      "image/jpeg"
     ],
     "condition": "Validated by the source operation preparation for the selected mode."
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "watermark"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "watermark-pdf",
   "id": "watermark_pdf_tool",
   "name": "watermark_pdf_tool",
   "url": "https://pdftoolsbase.com/watermark-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/watermark-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "WebP to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/webp-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"WebP to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "fit",
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "auto",
       "portrait",
       "landscape"
      ]
     },
     "opt-fit": {
      "type": "string",
      "enum": [
       "contain",
       "cover",
       "stretch",
       "actual"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 50,
      "multipleOf": 1
     },
     "opt-imagesPerPage": {
      "type": "string",
      "enum": [
       "1",
       "2",
       "4"
      ]
     },
     "opt-border": {
      "type": "boolean"
     },
     "opt-bgColor": {
      "type": "string"
     },
     "opt-docTitle": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-fit": {
     "selector": "#opt-fit",
     "type": "string",
     "engineKey": "fit",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-imagesPerPage": {
     "selector": "#opt-imagesPerPage",
     "type": "string",
     "engineKey": "imagesPerPage",
     "eventSequence": []
    },
    "opt-border": {
     "selector": "#opt-border",
     "type": "boolean",
     "engineKey": "border",
     "eventSequence": []
    },
    "opt-bgColor": {
     "selector": "#opt-bgColor",
     "type": "string",
     "engineKey": "bgColor",
     "eventSequence": []
    },
    "opt-docTitle": {
     "selector": "#opt-docTitle",
     "type": "string",
     "engineKey": "docTitle",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "acceptedTypes": [
      ".webp",
      "image/webp"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "images-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "webp-to-pdf",
   "id": "webp_to_pdf_tool",
   "name": "webp_to_pdf_tool",
   "url": "https://pdftoolsbase.com/webp-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/webp-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Webpage to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/webpage-to-pdf/",
   "processingProfile": "user_selected_destination",
   "description": "On-page \"Webpage to PDF\" tool. Opens the URL you supply in a new browser tab/window for a print-to-PDF workflow; the destination receives the normal browser request and connection metadata. This site does not fetch or proxy the page for you.",
   "outputDescription": "A URL requests a browser tab and returns action_required/requested_unverified; pasted HTML can produce an actual PDF artifact.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-url": {
      "type": "string"
     },
     "opt-htmlContent": {
      "type": "string"
     },
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 0,
      "maximum": 40,
      "multipleOf": 1
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-url": {
     "selector": "#opt-url",
     "type": "string",
     "engineKey": "url",
     "eventSequence": []
    },
    "opt-htmlContent": {
     "selector": "#opt-htmlContent",
     "type": "string",
     "engineKey": "htmlContent",
     "eventSequence": []
    },
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": null,
   "errorSelector": null,
   "completionStrategy": "adapter",
   "timeoutMs": 20000,
   "readOnlyHint": false,
   "consequentialHint": true,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [],
   "adapterKey": "pdf_engine",
   "fileRequirementMode": "allOf",
   "requiresSelectedFile": false,
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "url-to-pdf"
   },
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "webpage-to-pdf",
   "id": "webpage_to_pdf_tool",
   "name": "webpage_to_pdf_tool",
   "url": "https://pdftoolsbase.com/webpage-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/webpage-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Whiteout PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/whiteout-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Whiteout PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-boxes": {
      "type": "string"
     },
     "opt-fillColor": {
      "type": "string"
     },
     "opt-opacity": {
      "type": "number",
      "minimum": 50,
      "maximum": 100,
      "multipleOf": 5
     },
     "opt-borderColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-boxes": {
     "selector": "#opt-boxes",
     "type": "string",
     "engineKey": "boxes",
     "eventSequence": []
    },
    "opt-fillColor": {
     "selector": "#opt-fillColor",
     "type": "string",
     "engineKey": "fillColor",
     "eventSequence": []
    },
    "opt-opacity": {
     "selector": "#opt-opacity",
     "type": "number",
     "engineKey": "opacity",
     "eventSequence": []
    },
    "opt-borderColor": {
     "selector": "#opt-borderColor",
     "type": "string",
     "engineKey": "borderColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".pdf",
      "application/pdf"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "whiteout"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "whiteout-pdf",
   "id": "whiteout_pdf_tool",
   "name": "whiteout_pdf_tool",
   "url": "https://pdftoolsbase.com/whiteout-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/whiteout-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "Word to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/word-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"Word to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".docx",
      "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "word-to-pdf",
   "id": "word_to_pdf_tool",
   "name": "word_to_pdf_tool",
   "url": "https://pdftoolsbase.com/word-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/word-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "title": "XML to PDF",
   "site": "pdftoolsbase.com",
   "canonicalUrl": "https://pdftoolsbase.com/xml-to-pdf/",
   "processingProfile": "local_file",
   "description": "On-page \"XML to PDF\" tool. Processes the file you select locally in your browser; the file is not uploaded by this tool. This tool needs a file: select it with the visible file control on the page first; the file is processed locally and is not uploaded by this tool.",
   "outputDescription": "Returns the operation canonical result after real processing; successful files include actual MIME type and byte size.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "opt-pageSize": {
      "type": "string",
      "enum": [
       "a4",
       "letter",
       "a3",
       "a5",
       "legal"
      ]
     },
     "opt-orientation": {
      "type": "string",
      "enum": [
       "portrait",
       "landscape"
      ]
     },
     "opt-margin": {
      "type": "number",
      "minimum": 5,
      "maximum": 40,
      "multipleOf": 1
     },
     "opt-fontSize": {
      "type": "number",
      "minimum": 7,
      "maximum": 24
     },
     "opt-textColor": {
      "type": "string"
     }
    },
    "additionalProperties": false
   },
   "inputBindings": {
    "opt-pageSize": {
     "selector": "#opt-pageSize",
     "type": "string",
     "engineKey": "pageSize",
     "eventSequence": []
    },
    "opt-orientation": {
     "selector": "#opt-orientation",
     "type": "string",
     "engineKey": "orientation",
     "eventSequence": []
    },
    "opt-margin": {
     "selector": "#opt-margin",
     "type": "number",
     "engineKey": "margin",
     "eventSequence": []
    },
    "opt-fontSize": {
     "selector": "#opt-fontSize",
     "type": "number",
     "engineKey": "fontSize",
     "eventSequence": []
    },
    "opt-textColor": {
     "selector": "#opt-textColor",
     "type": "string",
     "engineKey": "textColor",
     "eventSequence": []
    }
   },
   "primaryActionSelector": "#process-btn",
   "resultSelector": "#output",
   "stateSelector": "#process-btn",
   "errorSelector": null,
   "completionStrategy": "adapter",
   "requiresSelectedFile": true,
   "timeoutMs": 60000,
   "readOnlyHint": true,
   "consequentialHint": false,
   "untrustedContentHint": true,
   "version": 29,
   "fileRequirements": [
    {
     "id": "file-input",
     "selector": "#file-input",
     "selectionMode": "manual_only",
     "required": true,
     "minFiles": 1,
     "maxFiles": 1,
     "acceptedTypes": [
      ".xml",
      "text/xml",
      "application/xml"
     ]
    }
   ],
   "fileRequirementMode": "allOf",
   "resultValidation": {
    "canonicalResult": true,
    "allowsEmptyText": true,
    "allowsZero": true,
    "allowsFalse": true,
    "rejectsUndefined": true,
    "rejectsNonFinite": true
   },
   "adapterKey": "pdf_engine",
   "ownsPreparation": true,
   "executionLifecycle": "source_owned",
   "lifecycleVersion": 1,
   "execution": {
    "lifecycleVersion": 1,
    "adapter": "source_owned_pdf",
    "operation": "file-to-pdf"
   },
   "runtimeVersion": "v29",
   "releaseDate": "2026-09-09",
   "generatedAt": "2026-09-27T00:00:00Z",
   "mode": "direct",
   "category": "Tools",
   "isAlias": false,
   "brandIndependent": false,
   "pageSlug": "xml-to-pdf",
   "id": "xml_to_pdf_tool",
   "name": "xml_to_pdf_tool",
   "url": "https://pdftoolsbase.com/xml-to-pdf/",
   "domain": "https://pdftoolsbase.com",
   "pageUrl": "https://pdftoolsbase.com/xml-to-pdf/",
   "releaseVersion": "7sitesv4"
  },
  {
   "id": "search_tools",
   "name": "search_tools",
   "title": "Search tools",
   "site": "pdftoolsbase.com",
   "domain": "https://pdftoolsbase.com",
   "url": "https://pdftoolsbase.com/",
   "canonicalUrl": "https://pdftoolsbase.com/",
   "category": "search",
   "mode": "direct",
   "safetyLevel": "direct",
   "processingProfile": "local_only",
   "description": "Search the existing tool cards through the visible homepage search control.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "search": {
      "type": "string"
     }
    },
    "required": [
     "search"
    ],
    "additionalProperties": false
   },
   "inputBindings": {
    "search": {
     "selector": "#search",
     "eventSequence": [
      "input"
     ],
     "type": "string"
    }
   },
   "primaryActionSelector": "#search",
   "resultSelector": null,
   "stateSelector": null,
   "errorSelector": null,
   "completionStrategy": "sync",
   "searchField": "search",
   "outputDescription": "Returns actual matching homepage tool names and URLs.",
   "readOnlyHint": true,
   "untrustedContentHint": true,
   "consequentialHint": false,
   "runtimeVersion": "v29",
   "generatedAt": "2026-09-27T00:00:00Z",
   "searchSelector": "#search",
   "version": 29,
   "lifecycleVersion": 1,
   "releaseDate": "2026-09-09"
  },
  {
   "id": "list_tools",
   "name": "list_tools",
   "title": "List tools",
   "site": "pdftoolsbase.com",
   "domain": "https://pdftoolsbase.com",
   "url": "https://pdftoolsbase.com/",
   "canonicalUrl": "https://pdftoolsbase.com/",
   "category": "navigation",
   "mode": "direct",
   "safetyLevel": "direct",
   "processingProfile": "local_only",
   "description": "Return the names of the tools linked on the homepage. Read-only.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 400,
      "default": 60,
      "description": "Maximum names to return."
     }
    },
    "additionalProperties": false
   },
   "completionStrategy": "sync",
   "outputDescription": "Returns actual existing homepage tool names and URLs, with total and returned counts.",
   "readOnlyHint": true,
   "untrustedContentHint": true,
   "consequentialHint": false,
   "runtimeVersion": "v29",
   "generatedAt": "2026-09-27T00:00:00Z",
   "version": 29,
   "lifecycleVersion": 1,
   "releaseDate": "2026-09-09"
  },
  {
   "id": "open_tool",
   "name": "open_tool",
   "title": "Open tool",
   "site": "pdftoolsbase.com",
   "domain": "https://pdftoolsbase.com",
   "url": "https://pdftoolsbase.com/",
   "canonicalUrl": "https://pdftoolsbase.com/",
   "category": "navigation",
   "mode": "direct",
   "safetyLevel": "direct",
   "processingProfile": "local_only",
   "description": "Navigate to a tool linked on the homepage by its visible name. Navigation only.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "name": {
      "type": "string",
      "description": "Visible name of the tool to open.",
      "minLength": 1
     }
    },
    "required": [
     "name"
    ],
    "additionalProperties": false
   },
   "completionStrategy": "navigation",
   "outputDescription": "Requests navigation to the exact selected existing tool URL. The receipt does not claim destination loading.",
   "readOnlyHint": false,
   "untrustedContentHint": true,
   "consequentialHint": false,
   "runtimeVersion": "v29",
   "generatedAt": "2026-09-27T00:00:00Z",
   "version": 29,
   "lifecycleVersion": 1,
   "releaseDate": "2026-09-09"
  }
 ],
 "releaseVersion": "blogs-2026-09-27"
}
