Estou tentando determinar os tamanhos reais de mídia (Carta, A4, etc.) suportados por uma impressora usando a API do Win32 (Winspool). De acordo com a documentação, EnumForms
ela enumera os formatos (tamanhos de mídia) suportados por uma impressora, mas, para todas as impressoras, retorna todos os formulários registrados no computador.
DeviceCapabilities
pode retornar três informações diferentes relacionadas aos tamanhos de mídia:
DC_PAPERNAMES
retorna os nomes de todos os tamanhos de mídia suportados por uma impressora, mas esses nomes não correspondem aos nomes dos formulários retornados por EnumForms
. Além disso, os nomes dos formulários estão sempre em inglês e, portanto, não correspondem de forma alguma aos DC_PAPERNAMES
retornados para outros idiomas.
DC_PAPERSIZE
retorna os tamanhos de todas as mídias suportadas por uma impressora, mas esses tamanhos não correspondem exatamente aos tamanhos nos formulários retornados por EnumForms
. Além disso, não há informações de margem.
DC_PAPERS
retorna o valor dmPaperSize do Windows para cada tamanho de mídia suportado. No entanto, não parece haver nenhuma maneira de determinar o formato correspondente.
Como posso obter os valores dos tamanhos de mídia realmente suportados (como form_info_X)?