O SDK
O Kit de Desenvolvimento (SDK) também está disponível no site oficial. Como vou descrever adiande, dá até para desenvolver sem ele.
O SDK instala no seu micro:
- A documentação (fraca) do SDK
- Um arquivo de include (LSPrintLauncher.h) e uma library (LSPrintLauncher.lib) para usar com C ou C++
- Um exemplo em C++, utilizando a MFC
Vou matar de cara o suspense e mostrar o cadaver atrás da cortina:
- O seu programa cria a imagem a imprimir em um arquivo (bmp, png, jpg).
- Você chama a função launchPrintOptions que está em LSPrintLauncher.dll.
- launchPrintOptions dispara LSPrintDialog.exe que apresenta o diálogo de impressão.
- Se o usuário confirmar a impressão, LSPrintDialog.exe dispara LSPrintingDialog.exe que faz a impressão.
Três Formas de Imprimir
Entendido o mecanismo de impressão, dá para perceber que temos três maneiras de imprimir:
- Linkar LSPrintLauncher.lib e chamar diretamente a função launchPrintOptions. Isto é o mais simples mas pressupõe que (a) a sua linguagem permite linkar direto com uma library (b) a DLL e os .exes do LSS estão no path.
- Linkar dinamicamente e LSPrintLauncher.lib e chamar indiretamente a função launchPrintOptions. A API do Windows possui as funções para carregar na memória uma DLL e localizar uma rotina dentro dela pelo nome. É "bruxaria nível 2", mas tem a vantagem de não precisar linkar a lib e poder localizar a DLL em tempo de execução (o modo oficial é olhando no registry em HKLM\SOFTWARE\LightScribe\LSPrintLauncher).
- Chamar diretamente os executáveis. Isto pode criar problemas de compatibilidade se algum dia os nomes ou parâmetros dos executáveis forem alterados, mas dá para fazer até de arquivo batch.
Obviamente estou resumindo bem a coisa. As 16 páginas da documentação do SDK tem um pouco mais de detalhes, principalmente os parâmetros das funções e dos executáveis. O parâmetro mais importante é o nome do arquivo com a imagem.
Um ponto importante é que os programas são rodados separados da sua aplicação. Isto pode criar o problema de saber quando o arquivo pode ser apagado. Uma opção interessante é deixar o programa de impressão apagá-lo quando não precisar mais dele, neste caso é recomendado criar o arquivo com um nome único no diretório temporário do usuário.
Além de launchPrintOptions, a DLL possui as rotinas launchPrint (que dispara a impressão) e haveLSDrive que informa se existe uma unidade LightSribe no micro.
Nenhum comentário:
Postar um comentário