MyQ X Server

Localizar e Substituir em Arquivos Binários

O recurso “Busca e Substituição Binária” permite que os administradores corrijam ou apliquem patches em fluxos de trabalhos de impressão antes que sejam analisados pelo MyQ. Ele funciona aplicando uma sequência de regras hexadecimais de busca e substituição a cada trabalho no nível de byte, visando comandos PDL específicos (PCL, PJL, PostScript) à medida que entram na fila de impressão. As regras são definidas por fila, executadas em uma única passagem de streaming e entram em vigor imediatamente após o salvamento — sem necessidade de reinicialização do serviço.

Atenção!
Este recurso manipula fluxos de bytes brutos. Uma regra mal configurada pode corromper um trabalho de impressão ou torná-lo impossível de imprimir. Teste primeiro em uma fila que não seja de produção. Você deve estar familiarizado com o trabalho com dados hexadecimais e a linguagem PDL relevante (PCL, PJL, PostScript).


Ativando a função “Localizar e Substituir Binário”

O recurso está desativado por padrão. Para ativá-lo, siga estas etapas.

  1. Modifique config.ini no diretório de dados do aplicativo (padrão: C:\ProgramData\MyQ) para incluir estas linhas:

    [JobProcessor]
    binaryFindReplaceEnabled=true
    
  2. Reinicie todos os serviços do MyQ com o Easy Config.

Isso habilita a função “Busca e Substituição Binária” e cria o diretório BinFindReplace no diretório de dados do aplicativo, caso ele não exista.

Para desativar o recurso, defina binaryFindReplaceEnabled=false e reinicie todos os serviços do MyQ.


Usando o arquivo de regras de substituição

Crie Config.json na BinFindReplace pasta dentro do diretório de dados (por exemplo, C:\ProgramData\MyQ\BinFindReplace\Config.json). As alterações no arquivo entram em vigor imediatamente, e não é necessário reiniciar o serviço. Se o arquivo for inválido, um erro será registrado e o arquivo inteiro será ignorado.

Exemplo:

{
  "queues": {
    "Default": ["FixTraySelection", "InjectWatermarkHeader"],
    "Web": ["GlobalBanner"]
  },
  "filters": {
    "FixTraySelection": {
      "find": "1B266C3148",
      "replace": "1B266C3248"
    },
    "InjectWatermarkHeader": {
      "find": "40504A4C20454E544552",
      "replace": "40504A4C2053455420555345523D2241646D696E220D0A40504A4C20454E544552"
    },
    "GlobalBanner": {
      "find": "1B452A",
      "replace": ""
    }
  }
}

Os filtros são definidos no Config.json arquivo, com um nome exclusivo e um par de strings de localização e substituição. Para excluir os bytes correspondentes, use uma string vazia como valor de substituição (como no GlobalBanner no exemplo).

Os filtros em cada matriz de fila são aplicados em sequência, cada um operando sobre a saída do anterior, em uma única passagem pelo arquivo de impressão. Filtros adicionais podem ser adicionados sem custo de desempenho. O resultado é transmitido diretamente para a saída sem armazenamento em buffer do trabalho completo. Um ID de filtro pode aparecer várias vezes em uma matriz de fila, em qualquer combinação com outros filtros.

Referência de campos

Campo

Tipo

Descrição

queues

Objeto

Mapeia nomes de filas (com distinção entre maiúsculas e minúsculas) para uma matriz ordenada de IDs de filtro. As filas não listadas não são afetadas.

filters

Objeto

Definições de filtros nomeados; em que cada chave é um ID de filtro e cada valor é um par de busca/substituição.

find

String

Bytes hexadecimais a serem localizados. Deve ser um valor não vazio e de comprimento par, e não diferencia maiúsculas de minúsculas.

replace

String

Bytes hexadecimais a serem substituídos. Uma string vazia exclui os bytes correspondentes. Deve ter comprimento par e não diferencia maiúsculas de minúsculas.

Observe os seguintes requisitos:

  • Apenas caracteres hexadecimais: 0–9, a–f, A–F, sem distinção entre maiúsculas e minúsculas

  • As strings find e replace devem conter um número inteiro de bytes (2 caracteres hexadecimais por byte)

  • A find cadeia de caracteres não pode estar vazia.

  • Os valores para find e replace devem ser diferentes.

  • Cada ID de filtro em queues deve estar definido em filters.

  • Tamanho máximo para cada find e replace valor é de 256 KB.

  • A saída de qualquer filtro individual não pode exceder 64 vezes o tamanho de sua entrada.


Registro

Os eventos relacionados a esse recurso aparecem em MyQ > Logs, identificados com o texto “Binary Find & Replace”.