PDF Commons

Compressão pesada

A compressão básica fica no navegador. Esta página envia o PDF e reduz as fotos para cerca de 150 DPI. O texto continua texto.

Este arquivo será enviado e apagado depois de 30 minutos.

A compressão pesada precisa de um passe diário de $6 ou do ano de $60. O arquivo grátis é PDF para Word, não esta página.

Um passe é reconhecido pelo e-mail do pagamento. A hora de fim é a janela ativa.

O que esta redução conserva

A compressão pesada executa o Ghostscript no servidor. O argv é gs, -sDEVICE=pdfwrite, -dCompatibilityLevel=1.4, -dPDFSETTINGS=/ebook, -dCompressPages=false, -dNOPAUSE, -dQUIET e -dBATCH. Nada do pedido é interpolado nesse argv. O preset /ebook faz a média das imagens coloridas em direção a 150 DPI e das imagens cinza em direção a 150 DPI. A reamostragem começa acima de 1.5 vezes o alvo, então uma foto colorida ou cinza acima de 225 DPI é reamostrada. Imagens mono usam Subsample em direção a 300 DPI. Cor e cinza são codificados com DCTEncode, que é JPEG. O mono usa CCITT. O preset define ColorConversionStrategy como sRGB. -dCompressPages=false vem depois do preset, então os fluxos de página não são comprimidos com flate e o texto selecionável continua selecionável. Um PDF só de texto pode crescer. O arquivo que este comando escreve começa com %PDF-1.4. O nome do download é sempre compressed.pdf. O arquivo original no computador não é substituído. Comprimir PDF fica no navegador e não chama gs.

O PDF e compressed.pdf entram no MongoDB GridFS, bucket uploads, com a ferramenta heavy-compress. A origem usa role source e guarda o nome original, ou upload.pdf quando o envio não tem nome. O resultado usa role result e o nome compressed.pdf, com o tipo application/pdf. O Ghostscript escreve input.pdf e output.pdf num diretório temporário. Esse diretório é removido quando o trabalho termina ou falha, inclusive se gs estiver ausente. A retenção apaga objetos do GridFS cuja hora de envio tem pelo menos RETENTION_MINUTES. Valores ausentes, zero ou não positivos usam 30. A linha deletions guarda o id do arquivo, o nome, a ferramenta, o role, a hora de envio e a hora da exclusão, não os bytes. A linha jobs permanece. Ela anota kind heavy-compress, tier pass, a contagem de páginas, o e-mail do pagamento, o id de origem, o id de resultado. Essa linha jobs não tem campo status.

Não há arquivo grátis nesta página. Um e-mail e uma compra ativa são exigidos antes de o Ghostscript rodar. O teto é de 20 páginas mesmo com um passe ativo, e o teto é verificado antes de gs começar. Um passe de um dia custa $6, é cobrado uma vez, dura 24 horas e não renova. Um ano custa $60 e dura 365 dias. O e-mail precisa coincidir com uma compra cujo status é active, do início até antes do fim. O arquivo grátis do servidor é PDF para Word, um arquivo, até 20 páginas, na página própria. O Ghostscript recebe SIGKILL depois de 60 segundos. Este formulário aceita um arquivo. Um passe não acrescenta um lote.

Um formulário vazio falha com "Choose a PDF." Bytes sem %PDF- nos primeiros 1024 caracteres falham com "Choose a PDF." Um arquivo cuja contagem de páginas não pode ser lida falha com "Choose a PDF." Sem páginas falha com "This PDF has no pages." Mais de 20 páginas falha com "This tool compresses up to 20 pages." Um passe ausente ou inativo falha com "Heavy compress needs a $6 day pass or the $60 year. The free file is PDF to Word, not this page." Se gs está ausente, se o temporizador de 60 segundos dispara, se gs sai com código diferente de zero, ou se a saída está vazia ou sem %PDF-, a página diz "Heavy compress is not available on this server." Essa frase é a constante em inglês em cada idioma. Um banco ausente recusa o envio antes de classificar os bytes. As ferramentas do navegador nas outras páginas não usam esse banco.

Perguntas

Toda foto fica menor?

Não. Imagens coloridas e cinza acima de 225 DPI são mediadas em direção a 150 DPI. Uma imagem já abaixo desse limiar pode passar direto, porque PassThroughJPEGImages continua ligado nos ajustes compartilhados do Ghostscript. Imagens mono são subamostradas em direção a 300 DPI. Texto selecionável não vira raster. Fluxos de página sem compressão fazem um PDF só de texto poder crescer. A linha curta acima do formulário diz que as fotos vão para cerca de 150 DPI e que o texto continua texto.

O primeiro envio é grátis?

Não. Esta página nunca é o arquivo grátis do servidor. O arquivo grátis é uma conversão de PDF para Word, até 20 páginas, quando esse PDF tem texto selecionável. O formulário pede o e-mail do pagamento de um passe ativo antes de gs rodar. O visitante vê "Heavy compress needs a $6 day pass or the $60 year. The free file is PDF to Word, not this page."

O que resta depois da exclusão?

O GridFS remove o PDF e compressed.pdf depois do relógio de retenção, 30 minutos, a menos que RETENTION_MINUTES seja um número positivo. A linha deletions guarda ids e horas, não bytes. A linha jobs guarda a contagem de páginas, o e-mail digitado, os ids dos arquivos e o hash de rede. O diretório temporário já se foi. A retenção não remove a linha jobs.

O que um passe muda aqui?

Um passe ativo é exigido antes do primeiro arquivo. O passe de um dia custa $6, é cobrado uma vez, dura 24 horas e não renova. O ano custa $60 por 365 dias. Cancelar interrompe a próxima cobrança do ano. O ano já pago continua até a data de fim e não é reembolsado. O teto de 20 páginas permanece para os dois. Um passe não muda o alvo de cor de 150 DPI, o alvo mono de 300 DPI nem o formulário de um arquivo.

Também