Confira PDFsam : um utilitário gratuito e de código aberto para (você adivinhou) dividir e mesclar PDFs. Você pode ser capaz de fazer o script para fazer o que quiser.
Minha organização tem uma impressora colorida alugada. Pagamos um custo por página ao locador, e o custo da página colorida é muito maior do que o custo da página em preto e branco. Nossos usuários são muito bons em selecionar o modo correto. Mas o problema surge quando eles querem imprimir um grande trabalho que tenha apenas algumas páginas coloridas. Eles não querem procurar manualmente pelo trabalho para encontrar as páginas coloridas e separá-las, e a gerência gostaria que elas não imprimissem centenas de páginas em P & B a cores.
Por exemplo, imagine uma impressora em que as páginas B & W custam 1 ¢ e as páginas coloridas custam 8 ¢. Um usuário deseja imprimir um documento de 200 páginas. A maioria das páginas é apenas texto em preto, mas há dez páginas de diagramas de cores. O usuário deseja obter os diagramas impressos em cores, mas a única maneira de ele fazer isso é imprimir todo o trabalho em "cor", custando US $ 16 ou encontrar manualmente as dez páginas em cores, imprimi-las separadamente por 80 ¢ e depois imprima o resto do documento por US $ 1,80, para um total de US $ 2,60, ou abandone as páginas coloridas e imprima tudo em B & W por US $ 2.
Existe um software que pode localizar automaticamente as páginas coloridas em um trabalho de impressão, enviar essas páginas para a impressora colorida e imprimir o restante do trabalho em uma impressora B & W? O ideal seria algum tipo de filtro de impressão, de modo que o usuário pudesse imprimir todo o trabalho como um trabalho em cores, e o software o interceptaria, dividiria com base nas páginas em cores e enviaria cada segmento para o local apropriado. impressora. Eu encontrei PaperCutNG , que faz exatamente o que eu quero , mas, honestamente, não vale a pena o dinheiro para esse recurso. Eu estava esperando encontrar uma solução livre.
Meu servidor de impressão é uma máquina com Windows 2003, e uma solução que é executada ali seria preferível, mas posso fazer a transição para um SO diferente, se necessário. Uma solução do lado do cliente também seria aceitável.
Confira PDFsam : um utilitário gratuito e de código aberto para (você adivinhou) dividir e mesclar PDFs. Você pode ser capaz de fazer o script para fazer o que quiser.
wfaulk, como você conseguiu isso?
tivemos esse recurso funcionando por um longo tempo.
é algo que deve ser feito no próprio driver de impressão ... mudando automaticamente entre mono e amp; cor na mosca.
Vale a pena verificar as opções que o seu fabricante lhe oferece, diferentes drivers, talvez.
Como alguém postou acima, alguns dos softwares de contabilidade de impressão fazem isso ... e cobram uma taxa, mas eles estão usando apenas o driver de impressão, conforme fornecido.
Você pode criar duas impressoras no servidor. Um conjunto para imprimir apenas preto e outra cor. Você pode até mesmo adicionar sigilo à impressora colorida para que somente usuários aprovados possam imprimir no dispositivo colorido. Uma impressora que aparece como dois para os usuários. Também usei isso para definir um determinado tamanho de página ou para forçar a impressão em frente e verso.
Já usou isso com freqüência no passado e funciona bem e não custa nada ao executar o Windows Server 2003
Você precisará encontrar um gerenciador de servidores de impressão de terceiros, como o papercut, que você mencionou.
Algumas outras soluções podem inculcar os seguintes aplicativos de servidor, embora eu não saiba se eles especificam o que você está procurando:
Ok, parece que vou ter que implementar isso sozinho. Até agora eu tenho um script perl bruto (que usa muitas chamadas de sistema para ghostscript e netpbm) que determina a cor ou preto-e-branco de cada página de um documento PostScript (ou PDF):
#!/usr/bin/perl
use File::Temp qw/ tempfile tempdir /;
my $pages=0;
my $tempdir = tempdir(CLEANUP=>1);
my ($psfh, $psfn) = tempfile(SUFFIX=>'.ps', DIR=>$tempdir);
while (<>) {
# Write to temporary file
print $psfh $_;
# Count Pages
$pages++ if ( /\%\%Page:/ );
}
if ( $pages == 0 ) {
# Not DSC-conforming; count manually; ugh
}
my ($pdffh, $pdffn) = tempfile(SUFFIX=>'.pdf', DIR=>$tempdir, OPEN=>0);
# Convert to PDF
#print("ps2pdf ... ");
system("ps2pdf $psfn $pdffn");
#print("done\n");
# Count PDF pages
my $pdfpages = 'pdfinfo $pdffn | egrep -e '^Pages'';
$pdfpages =~ m/(\d+)/;
$pdfpages = $1;
#print("$pdfpages pages\n");
# Note: 1-based array!!
my @colorhist;
for ( my $i = 1; $i<=$pdfpages; $i++) {
print("Page $i\n");
my @colors = 'gs -q -dFirstPage=$i -dLastPage=$i -dNOPAUSE -dBATCH -sDEVICE=ppmraw -sOutputFile=- $pdffn | ppmhist -noheader';
foreach (@colors) {
m/^\s*(\d+)\s+(\d+)\s+(\d+)\s+\d+\s+(\d+)\s*$/;
my $color = (($1<<16) + ($2<<8) + $3);
my $instances = $4;
$colorhist[$i]{$color} = $instances;
#print "$color $instances\n";
}
}
my @colorbw;
for ( my $i = 1; $i<=$pdfpages; $i++ ) {
my %pagehist = %{$colorhist[$i]};
#print("page $i:\n");
my $numcolors = 0;
my $totinstances = 0;
foreach $key (keys(%pagehist)) {
#print "$key\n";
#print "\t$key $pagehist{$key}\n";
$numcolors++;
$totinstances += $pagehist{$key};
my $r = $key >> 16;
my $g = ( $key - ($r << 16) ) >> 8;
my $b = $key - ($r << 16) - ($g << 8);
if ( ( abs($r - $g) > 32 ) || ( abs($r - $b) > 32 ) || ( abs($g - $b) > 32 ) ) {
$colorbw[$i] = 2;
}
}
if ( $numcolors <= 2 ) {
$colorbw[$i] = 1;
}
print "$i\n" if ($colorbw[$i] > 1);
}
Ela já tem uma otimização, pois se uma página contiver apenas duas cores, ela será marcada como B & W, mesmo que uma das cores esteja longe de preta, branca ou cinza. Eu também preciso implementar um filtro para descartar páginas que tenham algo como um pixel de outra cor, e também uma para marcar apenas as que são excessivamente coloridas, para filtrar as cores que acontecem em todas as páginas. (Eu acho que se alguém vai usar isso, eles estão pretendendo imprimir pelo menos algumas das páginas em preto-e-branco).
Depois disso, eu tenho que implementar a impressão de cada um desses conjuntos através da fila apropriada.
Espero descobrir como puxar as coisas do Ghostscript e do netpbm de volta para o script, mesmo que tenha que mudar de idioma.
Is there a piece of software than can automatically find the color pages in a print job, send those pages to the color printer, and then print the rest of the job to a B&W printer?
Claro, com esta solução comercial . Este vídeo mostra como fazer isso em uma única impressora para forçar preto & branco quando há pouca cor: link
Este vídeo mostra como enviar automaticamente trabalhos de impressão em cores para uma impressora diferente: link
Agora é fácil combinar os dois para sua solicitação.
feito :-) Usamos muito o recurso Imprimir e compartilhar aqui, pois temos perfis para forçar os usuários a imprimir em b & w. Confie em mim, há um grande retorno do investimento com uma boa peça de software.
Na nossa impressora, escolhemos "Auto" em vez de B & W ou cor. Auto cobra-nos apenas pela parte de cor & então nos cobra de forma diferente para o B & W. Nós não temos que fazer mais nada - basta escolher "Auto"
Tags printing filter print-server color