Government agencies manage an enormous variety of document workflows — from intake forms submitted by citizens to archival records that must remain readable for decades. Format requirements in government are often fixed by policy: specific systems require RTF, public accessibility standards require certain PDF structures, and archival mandates require formats with long-term stability. Meanwhile, citizens submit documents in whatever format their device produces. Bridging these requirements without building expensive custom conversion infrastructure is a practical operational challenge.

Format requirements in government operations

Government agencies face format conversion in several distinct operational contexts:

  • Public document distribution — policy documents, regulations, reports, and public notices need to be PDF (often PDF/A) for consistent rendering across all public systems and for long-term archival.
  • Legacy system compatibility — case management systems, judicial software, and permit platforms often require RTF or older document formats. Modern staff create in DOCX and need reliable conversion to RTF for system ingestion.
  • Open data portals — government data released to the public often originates in XLSX from departmental systems. CSV is required for open data portals, data.gov-style publishing, and developer accessibility.
  • Citizen document intake — permit applications, license submissions, and benefit applications accept documents from citizens who submit in whatever format their device produces — HEIC, PNG, DOCX, ODT. These need to be normalized before intake into government systems.
  • Records archival — records management requires specific formats for long-term preservation. Documents need to be in stable, open formats that will be readable without proprietary software.

Common format pairs in government workflows

The conversion routes government agencies use most:

  • DOCX → PDF — the most common government conversion: policies, memos, public notices, regulations, and correspondence for public distribution and archival
  • DOCX → RTF — legacy case management and judicial systems that require RTF for ingestion
  • DOC → DOCX / PDF — upgrading legacy document templates from older Word format
  • XLSX → CSV — data exports for open data portals, inter-agency data sharing, and public release
  • PPTX → PDF — public hearing presentations, agency briefings, and training materials
  • HEIC → JPG — citizen-submitted photos for permit applications, inspection documentation, and identification
  • TIFF → PDF — scanned paper records and legacy fax submissions for digital archival
  • PDF → JPG / PNG — document page previews for web-based permit and case management portals
  • ODT → PDF / DOCX — documents from LibreOffice users and some Linux-based government systems

The browser tool: client-side processing for citizen documents

Image conversions at changethisfile.com run entirely in the browser — citizen-submitted HEIC or PNG photos are processed locally and never uploaded. For agencies handling citizen documents where minimizing external data exposure is important, client-side conversion is the privacy-appropriate approach for image normalization.

Document conversions (DOCX → PDF, XLSX → CSV) require server-side LibreOffice processing. Files are auto-deleted after conversion.

The browser tool is the right choice for:

  • Staff converting ad hoc documents without installing software
  • Public-facing portals where citizens need a conversion option before submission
  • Accessible alternative for staff on locked-down government workstations that can't install conversion software

API integration for agency document systems

The endpoint is POST https://changethisfile.com/v1/convert. Source format auto-detected from filename. No SDK to install. Get a free API key.

Convert a policy document to PDF

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer ctf_sk_your_key" \
  -F "file=@public_notice_2026_04.docx" \
  -F "target=pdf" \
  --output public_notice_2026_04.pdf

Convert to RTF for case management system

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer ctf_sk_your_key" \
  -F "file=@case_summary.docx" \
  -F "target=rtf" \
  --output case_summary.rtf

Export XLSX data to CSV for open data portal

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer ctf_sk_your_key" \
  -H "Idempotency-Key: open-data-release-${DATASET}-${PERIOD}" \
  -F "file=@permit_data_q1_2026.xlsx" \
  -F "target=csv" \
  --output permit_data_q1_2026.csv

Code example: normalize citizen permit application uploads

Permit portal intake: normalize citizen-submitted documents and photos to standard formats before storing in the case management system. No SDK — plain requests and fetch.

import requests
from pathlib import Path

CTF_API_KEY = "ctf_sk_your_key_here"

# Standard formats for different document types
DOC_TO_PDF = {".docx", ".doc", ".odt", ".rtf"}
IMAGE_TO_JPG = {".heic", ".heif", ".tiff", ".tif", ".bmp", ".png"}

def normalize_permit_submission(upload_path: str, original_filename: str) -> tuple[bytes, str]:
    """
    Normalize permit application documents:
    - Word/ODT/RTF documents → PDF
    - Photos and scans → JPG
    """
    p = Path(original_filename)
    ext = p.suffix.lower()

    if ext in DOC_TO_PDF:
        target, out_ext = "pdf", "pdf"
    elif ext in IMAGE_TO_JPG:
        target, out_ext = "jpg", "jpg"
    else:
        with open(upload_path, "rb") as f:
            return f.read(), original_filename

    with open(upload_path, "rb") as f:
        resp = requests.post(
            "https://changethisfile.com/v1/convert",
            headers={"Authorization": f"Bearer {CTF_API_KEY}"},
            files={"file": (original_filename, f)},  # source auto-detected
            data={"target": target},
            timeout=60,
        )
    resp.raise_for_status()
    return resp.content, f"{p.stem}.{out_ext}"

JavaScript (fetch, no SDK):

const DOC_TO_PDF = new Set(['.docx', '.doc', '.odt', '.rtf']);
const IMAGE_TO_JPG = new Set(['.heic', '.heif', '.tiff', '.tif', '.bmp', '.png']);

async function normalizePermitSubmission(fileBuffer, filename) {
  const ext = filename.slice(filename.lastIndexOf('.')).toLowerCase();
  let target;
  if (DOC_TO_PDF.has(ext)) target = 'pdf';
  else if (IMAGE_TO_JPG.has(ext)) target = 'jpg';
  else return { data: fileBuffer, filename };

  const form = new FormData();
  form.append('file', new Blob([fileBuffer]), filename); // source auto-detected
  form.append('target', target);

  const resp = await fetch('https://changethisfile.com/v1/convert', {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${process.env.CTF_API_KEY}` },
    body: form,
  });
  if (!resp.ok) throw new Error(`${resp.status}: ${await resp.text()}`);
  return {
    data: Buffer.from(await resp.arrayBuffer()),
    filename: filename.replace(/\.[^.]+$/, '.' + target),
  };
}

curl for staff use:

curl -sX POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer $CTF_API_KEY" \
  -F "file=@regulation_draft.docx" \
  -F "target=pdf" \
  -o regulation_draft.pdf

Pricing for government agency scale

PlanConversions/monthPriceFits
Free1,000$0Small municipality or low-volume department
Hobby10,000$29/moMid-size department with regular document workflows
Startup50,000$99/moAgency with active citizen intake, open data releases, or permit processing
Scale500,000$499/moState or federal agency with high-volume document operations
Growth5,000,000$1,999/moLarge agency platform, multi-department integration, or citizen portal at scale

A permit processing department handling 500 applications per month with 3 documents each is 1,500 conversions — comfortably within Hobby. An agency managing open data quarterly releases plus daily citizen intake should estimate based on volume and start with Startup.

FAQ

Does DOCX → PDF produce PDF/A for archival compliance?

The DOCX → PDF route uses LibreOffice headless and produces standard PDF. LibreOffice can export PDF/A-1b — but the compliance quality depends on the source document's embedded fonts and formatting. For formal archival compliance requirements, test your specific document templates and verify with your records management standards before deploying.

Can RTF be used as a reliable interchange format with legacy systems?

RTF is a decades-old Microsoft format with good compatibility across legacy systems. DOCX → RTF conversion via LibreOffice produces RTF that works with most case management and judicial systems that require it. Test with your specific target system, as complex formatting (tables, headers) may require adjustment.

Is there a data processing agreement (DPA) available for government use?

ChangeThisFile doesn't currently offer government-specific data processing agreements or FedRAMP authorization. For federal agencies with FedRAMP requirements or agencies processing Controlled Unclassified Information (CUI), evaluate whether the service meets your agency's data handling requirements. Client-side conversions (images) don't involve any server upload.

Can I embed the converter in a citizen-facing portal without an account?

The anonymous /api/convert endpoint is rate-limited but doesn't require an API key — it's suitable for a citizen-facing portal where users convert their own files before submission. For higher volume, the authenticated /v1/convert endpoint with an API key is more appropriate.

Does the API support bulk XLSX → CSV for open data releases?

Yes — send individual requests in parallel. For a quarterly open data release with dozens of XLSX files, a script parallelizing 5-10 requests at a time completes quickly. Use idempotency keys for each file to make re-runs safe.

Conversion guides for government document workflows: