What I need is to send a PDF document directly to the remote network printer, without any changes, as it is, using Print button.
Para a maioria dos aplicativos, isso não é possível usando o botão "Imprimir" porque o aplicativo que você está usando está tentando falar com um driver de impressora não-bruto, enquanto você deseja explicitamente ignorar esses recursos. Em vez disso, você deve enviar o fluxo bruto para a impressora diretamente. Para conseguir isso no Windows ( SEM o uso de um botão de impressão)
- Compartilhe a impressora na rede.
- De
cmd
(ou PowerShell, etc): echo sample.pdf > \computer\printer
Ou de uma linguagem de programação como JScript :
"use strict";
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile("sample.pdf", "\\computer\printer", true);
Obter um aplicativo para se comportar dessa maneira não será comum. A maioria dos aplicativos capazes de abrir e renderizar um PDF não teria a capacidade de ignorar o driver. Isso é apenas por convenção. Os idiomas subjacentes (por exemplo, C ++, Java) têm técnicas para sabores de dados brutos, não é algo comumente associado ao botão "Imprimir" que você está descrevendo.
In Ubuntu I just use Generic / Raw Queue driver
, and all is OK.
Qual aplicativo dentro do sistema operacional Ubuntu permite isso? De um modo geral, o CUPS utilizará o Ghostscript e sofrerá uma tradução semelhante à do driver PDF da Microsoft. Eu desafiaria a afirmação de que os dados PDF enviados não são "modificados" no Ubuntu. É mais provável que IS seja modificado, mas que a versão modificada seja simplesmente mais desejável. Se você está certo e o fluxo de bytes não está modificado, isso parece mais um recurso oculto do CUPS, em vez de um problema com o WinSpool.