Converters

The converter pipeline lets Diffoniq compare file formats it cannot read itself — PDF documents, Word files, SQLite databases, image metadata — by running an external program that turns the file into plain text. The text output of both sides is then compared with the normal diff engine.

Rules are configured under Options › Converters… Each rule consists of:

Name Optional display name; shown in the converted: badge of the header. Without a name the file masks stand in.
File masks Semicolon-separated wildcard list, e.g. *.pdf;*.docx. Matching is case-insensitive and applies to the file name (also inside archives).
Command The external command line. %src% is replaced with the source file, %out% with the output text file the converter should write. A command without %out% has its standard output captured instead. Both paths are inserted already quoted — do not add your own quotation marks around the placeholders.
Timeout Maximum runtime in seconds (default 30). A converter that exceeds it is terminated, including any processes it started.
Active Deactivated rules stay in the list but are skipped.

The first active rule whose mask matches wins — use Move Up/Move Down to order overlapping rules. When no rule matches, the file is compared normally.

The fields below the list are moved into it with Add as New Rule or Apply to Selected. OK keeps what you typed as well: an entry that was never added becomes a new rule, and if a selected rule was changed in the fields, Diffoniq asks whether to apply the change to it or add it as a new rule. Cancel discards every change made in the dialog. The Help button (or F1) opens this page.

How converted comparisons behave

Caching

Conversion results are cached in the convcache folder next to diffoniq.ini (a portable installation keeps it portable). The cache key is the source file’s content plus the rule’s command line: an unchanged file never runs the converter twice, an edited rule never serves stale output. The entry ConvCacheMax=200 in diffoniq.ini caps the cache size in MB (least recently used entries are removed first; 0 disables the cap).

Security note

Diffoniq only ever runs commands you configured yourself — there are no built-in rules, and nothing starts automatically for unmatched files. The command runs directly (no shell); shell syntax such as pipes or redirection only works when you explicitly configure cmd.exe /c as the command.

Recipes

Free, widely-used tools that work well; all examples write UTF-8, which Diffoniq detects automatically (UTF-16 and ANSI output are handled too).

PDFpdftotext (Xpdf/Poppler) pdftotext -layout -enc UTF-8 %src% %out%
Masks: *.pdf
Word / Officepandoc pandoc -t plain -o %out% %src%
Masks: *.docx;*.odt;*.epub;*.rtf
Legacy Office & more — xdoc2txt xdoc2txt -8 %src% (UTF-8 to standard output)
Masks: *.doc;*.xls;*.ppt
SQLite databasessqlite3 sqlite3 %src% .dump
Masks: *.db;*.sqlite;*.sqlite3
Image / photo metadataExifTool exiftool -charset UTF8 %src%
Masks: *.jpg;*.jpeg;*.tif;*.nef;*.cr2 — compares the metadata, not the pixels.

Tools that are not on the PATH need their full path, e.g. "C:\Program Files\pandoc\pandoc.exe" -t plain -o %out% %src%.

Trying it out without installing anything

Windows ships a tool that turns any file into text: cmd.exe /c certutil -encode -f %src% %out% writes the file as Base64. With the masks set to *.pdf, a PDF pair then opens in the converted, read-only text view with the converted: badge, and a different pair shows a difference. This is a way to see the pipeline work before installing a real converter — it is not a way to read the document: Base64 lines carry no words, and two PDFs that differ only in metadata differ in the text just as much as two with different content. For the document itself, use pdftotext from the table above.