Se seu Delphi Como o aplicativo precisa operar em vários tipos de arquivos, uma das tarefas que você pode ter para o seu aplicativo é permitir que o usuário do aplicativo imprima um arquivo, qualquer que seja o tipo de arquivo.
A maioria dos aplicativos orientados a documentos, como MS Word, MS Excel ou Adobe, pode facilmente imprimir documentos criados nesse programa. Por exemplo, Microsoft O Word salva o texto que você escreve em documentos com extensão DOC. Como o Word determina o conteúdo "não processado" de um arquivo .DOC, ele sabe como imprimir arquivos .DOC. O mesmo se aplica a qualquer tipo de arquivo "conhecido" contendo algumas informações imprimíveis.
E se você precisar imprimir vários tipos de documentos / arquivos do seu aplicativo? Você sabe como enviar o arquivo para a impressora para que seja impresso corretamente?
Imprimir no Delphi
Podemos perguntar ao Windows qual aplicativo pode imprimir, por exemplo, um arquivo PDF. Ou, melhor ainda, podemos dizer ao Windows, aqui está um arquivo PDF, enviá-lo ao aplicativo associado / responsável pela impressão de arquivos PDF.
Para fazer isso, abra o Windows Explorer, navegue até um diretório que contém alguns arquivos imprimíveis. Para a maioria dos tipos de arquivos no seu sistema, quando você clica com o botão direito do mouse em um arquivo no Windows Explorer, localiza o comando "Imprimir". A execução do comando Imprimir shell resultará no envio do arquivo para a impressora padrão. Bem, é exatamente isso que queremos: para um tipo de arquivo, chame um método que envie o arquivo para o aplicativo associado para impressão. A função que buscamos é a função da API ShellExecute.
ShellExecute: Print / PrintTo
No entanto, o ShellExecute pode fazer muito mais. ShellExecute pode ser usado para iniciar um aplicativo, abra o Windows Explorer, inicie uma pesquisa começando no diretório especificado e, o que é de maior interesse para nós, imprima o arquivo especificado.
Especificar impressora
Usando a chamada acima, um documento "document.doc" localizado na raiz da unidade C será enviado para a impressora padrão do Windows. ShellExecute sempre usa a impressora padrão para a ação "imprimir". E se você precisar imprimir em uma impressora diferente, e se desejar permitir que o usuário troque a impressora?
O comando PrintTo Shell
Antes de copiar e colar: a variável global Impressora (tipo TPrinter) disponível em todos os programas Delphi pode ser usada para gerenciar qualquer impressão realizada por um aplicativo. A impressora é definida na unidade "impressoras", ShellExecute é definida na unidade "shellapi".
- Solte um TComboBox em um formulário. Nomeie-o "cboPrinter". Definir estilo como csDropDownLidt
- Coloque as próximas duas linhas no manipulador uniforme OnCreate do formulário:
// tem impressoras disponíveis na caixa de combinaçãocboPrinter. Itens. Atribuir (impressora. Impressoras);// pré-seleciona a impressora padrão / ativacboPrinter. ItemIndex: = impressora. PrinterIndex;
use para imprimir qualquer tipo de documento em uma impressora especificada
Nota: alguns tipos de documentos não têm um aplicativo associado à impressão. Alguns não têm a ação "printto" especificada.