Driver API

O PrintFactory Driver SDK permite-lhe construir os seus próprios drivers para o PrintFactory. Podemos distribuí-los numa base mais ampla, depois de os termos validado.

Um driver é um DLL (Windows) ou dylib (macOS) que expõe uma API pré-definida à PrintFactory. Esta API fornece à PrintFactory dados sobre as capacidades da impressora ou cortadora, e define como a informação deve ser enviada para impressão, etc. Para as versões validadas, fornecerá também a chave de licença.

Exportação DLL

O motorista exporta de três maneiras;

  • ListModels : isto é o que usamos quando iteramos através da pasta dos condutores para cada condutor. Este método fornece uma lista de nomes de impressoras/cortadores para o controlador, que serão listados na caixa de diálogo Adicionar Dispositivo de Saída.
  • PrinterInitialize : isto é o que usamos para criar uma instância de uma impressora ou cortadora. Permanece ‘vivo’ enquanto o componente RIP ou PrintStation estiver a funcionar. A instância devolverá uma série de métodos para a PrintFactory utilizar.
  • PrinterTerminate : é isto que usamos para apagar uma instância, quando já não há necessidade de utilizar a PrintStation nesse momento.

Métodos de instância

A lista de métodos passados de volta pela PrinterInitialize compreende:

  • Informação : isto é o que usamos para consultar as capacidades do dispositivo, obter um guião UI, conjunto de tinta, bandejas, etc. Sem um XML de configuração, obterá os valores por defeito; com um XML de configuração (extraído do script UI) obterá detalhes específicos do modo de impressão.
  • DisposeInfo : Utilizado para apagar os dados resultantes da chamada de informação.
  • CreateSession : PrintFactory chama a isto no início de um trabalho. O método CreateSession irá passar uma lista de métodos que o sistema pode utilizar para passar os dados de impressão e/ou corte para o condutor.
  • DisposeSession : é isto que usamos para eliminar a sessão criada por CreateSession após um trabalho ter terminado ou ser abortado.
  • PrinterStatus : Método opcional que é chamado periodicamente para consultar os níveis de tinta, estado de erro ou outra informação de estado do dispositivo. Esta informação é visível no RIP, bem como na interface da nuvem.
  • JobStatus : Método opcional para fornecer o consumo de tinta e outras informações de estado da impressora sobre o trabalho que foi processado. Se este método não estiver disponível, o sistema sintetizará a informação de consumo com base nos detalhes fornecidos pela chamada de informação.
  • PrinterQuery : API opcional de uso geral para poder aceder a outras partes do dispositivo para além da impressão ou corte, como espectrómetros fotográficos, agrafadores, pastas, etc.
  • GetPrivateCacheData : Método opcional para obter informação de estado persistente (que é armazenada pelo condutor para reter informação sobre, por exemplo, os modos disponíveis no dispositivo ligado) e armazená-la no ficheiro de configuração que é armazenado na nuvem e em Backups.
  • SetPrivateCacheData : Método opcional para escrever de volta informação de estado persistente a partir da nuvem ou de um Backup.

Interface do utilizador

A interface do utilizador é criada dinamicamente a partir do script UI baseado em XML. O guião dita que elementos devem ser apresentados ao utilizador, para construir um modo de impressão, e quais destes elementos podem ser modificados mais tarde por um operador sem influenciar a cor (ou quaisquer outros aspectos de qualidade do trabalho).

Após a apresentação da IU, as configurações escolhidas são extraídas e armazenadas num XML de configurações que é passado para a chamada de informação. Em troca, geramos a lista de tintas, resolução, profundidade de bits e outros parâmetros necessários para RIP um trabalho no formato necessário para o condutor.

Detalhes sobre o formato e estrutura da UI XML estão documentados na documentação da UI XML do Driver.

Métodos de Sessão

O método CreateSession devolve uma lista de métodos que permitem à PrintFactory passar os dados de impressão ou corte ao condutor (todos os quais são opcionais). Os métodos individuais estão documentados na documentação API do Driver.

O RIP, spooler ou PrintStation executará a seguinte sequência de chamada para passar um trabalho ao condutor:

Imprimir

  • Inicializar
  • JobStart
  • para( cada camada em cada página )
    • PageStart
    • RasterStart
    • para( cada avião em cada linha )
      • ProcessRawBuffer
    • RasterEnd
    • PageEnd
  • JobEnd
  • Terminar

Corte

  • Inicializar
  • JobStart
  • para( cada página )
    • RegistrationMarks (se presente)
    • PageStart
    • VectorStart
    • Mistura de chamadas abaixo para construir contornos
      • SetTool
      • Mudança
      • Linha
      • Vértice
      • PenUp
      • PenDown
      • CurveStart
      • CurveEnd
    • VectorEnd
    • PageEnd
    • Transportes
  • JobEnd
  • Terminar

Imprimir e cortar

  • Inicializar
  • JobStart
  • para( cada camada em cada página )
    • RegistrationMarks (se presente)
    • PageStart
    • RasterStart
    • para( cada avião em cada linha )
      • ProcessRawBuffer
    • RasterEnd
    • VectorStart
    • Mistura de chamadas abaixo para construir contornos
      • SetTool
      • Mudança
      • Linha
      • Vértice
      • PenUp
      • PenDown
      • CurveStart
      • CurveEnd
    • VectorEnd
    • PageEnd
    • Transportes
  • JobEnd
  • Terminar

Exemplo

O exemplo seguinte demonstra como criar um condutor que irá criar ficheiros TIFF como saída. A amostra pode ser clonada a partir de GIT : https://bitbucket.org/aurelon/ada.git e contém o condutor da amostra, bem como um hospedeiro de ossos nus que pode ser utilizado em vez do RIP da PrintFactory para fazer os passos iniciais.