Back to Skills
    🦞

    pandic-office

    Converts Markdown files to PDF files using the pandoc

    By @piyushduggal-source
    View on GitHub
    SKILL.md
    ---
    name: local-pandoc
    description: Converts Markdown files to PDF files using the pandoc command-line utility. Use when a user asks to convert a .md or markdown file to a .pdf file.
    ---
    
    # Local Pandoc Conversion Skill
    
    This skill uses the `pandoc` command-line utility to convert documents between numerous markup formats.
    
    ## Basic Usage
    
    The fundamental structure of a `pandoc` command is:
    
    ```bash
    pandoc [options] [input-file]…
    ```
    
    ### Simple Conversion
    
    To convert a Markdown file to HTML:
    
    ```bash
    pandoc -o output.html input.md
    ```
    
    ### Specifying Formats
    
    While `pandoc` can infer formats from file extensions, you can be explicit with the `-f` (from) and `-t` (to) flags.
    
    ```bash
    # Convert HTML to Markdown
    pandoc -f html -t markdown input.html
    ```
    
    ### Standalone Documents
    
    To create a complete document with a proper header and footer (e.g., a full HTML file), use the `-s` or `--standalone` flag.
    
    ```bash
    pandoc -s -o output.html input.md
    ```
    
    ## Advanced Examples
    
    The following examples are extracted from the official Pandoc User's Guide.
    
    ### PDF Output
    
    To create a PDF, `pandoc` typically uses a LaTeX engine. Ensure one is installed.
    
    ```bash
    # Basic PDF creation
    pandoc input.md -o output.pdf
    
    # Control PDF engine and style via variables
    pandoc input.md -o output.pdf --pdf-engine=xelatex -V geometry:margin=1in -V fontsize=12pt
    ```
    
    ### Document Structure & Metadata
    
    Pandoc can automatically generate a table of contents and use document metadata.
    
    ```bash
    # Create a document with a Table of Contents (up to level 3 headings)
    pandoc --toc --toc-depth=3 -o output.docx input.md
    
    # Set metadata fields from the command line
    pandoc -M title:"My Report" -M author:"Galactus" -o output.pdf input.md
    ```
    
    ### Templates and Styling
    
    You can control the final output's structure and style with templates and other options.
    
    ```bash
    # Use a custom template for HTML output
    pandoc -s --template=my-template.html -o output.html input.md
    
    # For HTML output, link to a custom CSS file
    pandoc -s --css=styles.css -o output.html input.md
    
    # For DOCX output, use a reference document for styling
    pandoc --reference-doc=reference.docx -o output.docx input.md
    ```
    
    ### Reading from the Web
    
    Pandoc can directly fetch and convert content from a URL.
    
    ```bash
    pandoc -f html -t markdown https://www.fsf.org
    ```
    
    ### Other Useful Options
    
    ```bash
    # Preserve tabs instead of converting them to spaces
    pandoc --preserve-tabs ...
    
    # Control line wrapping in the output source code
    pandoc --wrap=none ...
    
    # Shift heading levels (e.g., make all H1s into H2s, H2s into H3s)
    pandoc --shift-heading-level-by=1 ...
    ```
    This enhanced documentation provides a more robust foundation for using `pandoc`.