Skip to content

Add support for missing Nutrient DWS API tools #3

@msch-nutrient

Description

@msch-nutrient

Missing Tools to Implement

Based on the Nutrient API documentation, the following tools are missing and should be added:

High Priority PDF Processing Tools

  • split_pdf - Split PDF into multiple files
  • duplicate_pdf_pages - Duplicate specific pages
  • delete_pdf_pages - Delete specific pages
  • add_page - Add blank or content pages
  • set_page_label - Set page labels/numbering

Document Generation Tools

  • pdf_generator - Generate PDFs from templates
  • pdf_creator - Create PDFs programmatically
  • pdf_writer - Write content to PDFs
  • url_to_pdf - Convert URLs to PDF

Form and Annotation Tools

  • json_import - Import form data from JSON
  • xfdf_import - Import XFDF annotations
  • pdf_form_filling - Fill PDF forms
  • pdf_form_creator - Create interactive forms
  • pdf_annotations - Add/modify annotations

Conversion Tools

  • pdf_converter - General PDF conversion
  • office_to_pdf - Convert Office documents (DOC, DOCX, XLS, XLSX, PPT, PPTX, RTF, ODT)
  • image_to_pdf - Convert images (JPG, PNG, TIFF, HEIC, WebP, SVG, GIF, TGA, EPS)
  • html_to_pdf - Convert HTML to PDF
  • pdf_to_image - Convert PDF to images
  • office_to_image - Convert Office documents to images
  • html_to_image - Convert HTML to images
  • pdf_to_office - Convert PDF to Office formats
  • image_to_office - Convert images to Office formats
  • html_to_office - Convert HTML to Office formats

Optimization and Archive Tools

  • pdf_optimization - Optimize PDF file size
  • image_optimization - Optimize images in PDFs
  • pdf_linearization - Linearize PDFs for web viewing
  • pdf_to_pdf_a - Convert to PDF/A format
  • pdf_a_validation - Validate PDF/A compliance

Data Extraction Tools

  • text_extraction - Extract text from documents
  • key_value_pair_extraction - Extract key-value pairs
  • image_to_text - OCR for images
  • table_extraction - Extract tables to Excel/XML/JSON/CSV

Security Tools

  • pdf_security - Add/remove security settings
  • digital_signatures - Add digital signatures (already has basic support)

AI Tools

  • ai_redaction - AI-powered redaction (mentioned in OpenAPI spec)

Implementation Guidelines

For each new tool, follow this pattern:

  1. Add method to DirectAPIMixin in src/nutrient_dws/api/direct.py:

    def tool_name(
        self,
        input_file: FileInput,
        output_path: Optional[str] = None,
        **tool_specific_params,
    ) -> Optional[bytes]:
        """Tool description."""
        return self._process_file("api-tool-name", input_file, output_path, **options)
  2. Add builder API support - tools should automatically work with builder pattern via _process_file

  3. Add comprehensive tests in tests/unit/ and tests/integration/

  4. Update documentation with examples and parameter descriptions

  5. Follow existing patterns for:

    • Error handling (AuthenticationError, APIError)
    • File handling (FileInput type)
    • Parameter validation
    • Type hints and docstrings

Tool Name Mapping

The Python method names should be snake_case versions of the API tool names:

  • API: split-pdf → Python: split_pdf
  • API: office-to-pdf → Python: office_to_pdf
  • API: pdf-to-pdf-a → Python: pdf_to_pdf_a

Notes

  • All tools should support the same file input types: str (path), bytes, or file-like objects
  • All tools should support optional output_path parameter
  • Consider adding input format validation where appropriate
  • Some tools may need special handling for multiple file inputs/outputs
  • Refer to the OpenAPI spec for exact parameter names and types

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions