# reporting > PDF generation, extraction, and document conversion tools - Author: KIrill Enkogu - Repository: enkogu/pipeline-fullstack-app - Version: 20260125155958 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/enkogu/pipeline-fullstack-app - Web: https://mule.run/skillshub/@@enkogu/pipeline-fullstack-app~reporting:20260125155958 --- --- name: reporting description: PDF generation, extraction, and document conversion tools python_requires: - pypdf - xhtml2pdf - pandas - markdown-it-py - requests api_keys: - OPENROUTER_API_KEY capabilities: - pdf_extract - pdf_merge - pdf_split - convert_to_pdf - image_extract - excel_to_markdown --- # Reporting Skill ## Requirements - OPENROUTER_API_KEY for PDF/image extraction (Gemini LLM) - Python packages: xhtml2pdf, pypdf, markdown-it-py, pandas, pillow ## PDF Operations ### Extract Text from PDF Param names: `input_path`, `mode` ``` # Single argument (default mode: text): run_skill("reporting/pdf-extract.py", "") # With mode specified - use JSON array: run_skill("reporting/pdf-extract.py", '["", "mode:metadata"]') run_skill("reporting/pdf-extract.py", '["", "mode:both"]') ``` Uses Gemini LLM to extract content in detailed Markdown format. **Example:** ``` run_skill("reporting/pdf-extract.py", "/path/to/invoice.pdf") run_skill("reporting/pdf-extract.py", '["/path/to/invoice.pdf", "mode:text"]') ``` ### Merge PDFs Param names: `output_path`, `paths...` ``` # Use JSON array for multiple paths: run_skill("reporting/pdf-merge.py", '["", "", "", ...]') ``` Concatenate multiple PDFs into one document. **Example:** ``` run_skill("reporting/pdf-merge.py", '["/output/merged.pdf", "/file1.pdf", "/file2.pdf", "/file3.pdf"]') ``` ### Split PDF Param names: `input_path`, `output_path`, `ranges` ``` # Use JSON array for 3 arguments: run_skill("reporting/pdf-split.py", '["", "", ""]') ``` Extract pages using range expression (e.g., "1-3,5,7-") **Example:** ``` run_skill("reporting/pdf-split.py", '["/input.pdf", "/output/", "1-3,5,7-10"]') ``` ### Convert to PDF Param names: `output_path`, `input_path`, `kind`, `theme` ``` # Single file conversion (auto-detect format): run_skill("reporting/convert-to-pdf.py", '["", ""]') # With explicit format and theme: run_skill("reporting/convert-to-pdf.py", '["", "", "kind:md", "theme:compact"]') ``` Kinds: auto, md, csv, txt, html. Themes: simple, compact. **Example:** ``` run_skill("reporting/convert-to-pdf.py", '["/output/report.pdf", "/input/report.md"]') run_skill("reporting/convert-to-pdf.py", '["/output/data.pdf", "/input/data.csv", "kind:csv", "theme:simple"]') ``` ## Image/Excel Operations ### Extract Text from Image ``` run_skill("reporting/image-extract.py", "") ``` Uses Gemini LLM to extract text and content from images. **Example:** ``` run_skill("reporting/image-extract.py", "/path/to/screenshot.png") ``` ### Excel to Markdown Param names: `input_path`, `output_path` ``` # Single argument (output to stdout): run_skill("reporting/excel-to-markdown.py", "") # With output path - use JSON array: run_skill("reporting/excel-to-markdown.py", '["", ""]') ``` Convert Excel file to Markdown with tables for each sheet. **Example:** ``` run_skill("reporting/excel-to-markdown.py", "/path/to/data.xlsx") run_skill("reporting/excel-to-markdown.py", '["/path/to/data.xlsx", "/output/data.md"]') ``` ### Process Attachment to Markdown Param names: `file_path`, `mime_type` ``` # Use JSON array for 2 arguments: run_skill("reporting/process-attachment.py", '["", ""]') ``` Converts PDF, Excel, or text files to Markdown based on MIME type. Supported: application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/* **Example:** ``` run_skill("reporting/process-attachment.py", '["/path/to/invoice.pdf", "application/pdf"]') run_skill("reporting/process-attachment.py", '["/path/to/data.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]') ``` ## Notes - All scripts output JSON to stdout - PDF extraction uses Gemini 2.5 Flash via OpenRouter - Paths can be absolute or relative to workflow artifacts