I know this is borderline necroposting, but I was just faced with this problem, dpi doesn't seem accessible in lua filters (not in `PANDOC_READER_OPTIONS` anyway, which are reader options). So in case anyone wants a hint, here goes...
Since I usually invoke pandoc from a script (a windows batch in my case), I just create (set) the dpi to a variable (say 'dpi'), and then pass it to both `--dpi` and `-M` on the pandoc command line.
So in a win batch that would be, for example:
```
...
set dpi=300
...
pandoc %1 %otheroptions% -M dpi=%dpi% --dpi=%dpi% -o %output%
```
Then in the lua file, the first filter in the return list would be a `Meta(meta)` filter that would retrieve the dpi through meta["dpi"] and put in a lua variable to be used.
Yes, it's redundant, but I don't see how else (apart from setting an environment variable, but it's the same principle).