Pergunta

Eu estive batendo a cabeça contra este sem sucesso.

Eu preciso encolher algumas grandes PDFs para imprimir em uma página 8,5x11 polegadas (carta padrão). Can ImageMagick / Ghostscript lidar com esse tipo de coisa, ou eu estou tendo tanta dificuldade porque eu estou usando a ferramenta errada para o trabalho?

Apenas contando com a opção 'encolher para página' em diálogos de impressão do lado do cliente não é uma opção, como gostaríamos para que isso seja fácil de usar para os usuários finais.

Foi útil?

Solução

O problema com o uso ImageMagick é que você está convertendo para um formato de imagem raster, aumentando o tamanho do arquivo ea deterioração da qualidade de quaisquer elementos do vetor em suas páginas.

Multivalentes irá reter as informações vetor do PDF. Tente:

java -cp Multivalent.jar tool.pdf.Impose -dim 1x1 -paper "8.5x11in" myFile.pdf

para criar um arquivo de saída myFile-up.pdf

Outras dicas

Eu não usaria convert. Ele usa Ghostscript em segundo plano, mas é muito mais lento. Eu usaria Ghostscript diretamente, uma vez que me dá muito mais direta de controle (e também algum controlo sobre as definições que são muito mais difíceis de alcançar com convert). E para convertido ao trabalho para conversão de PDF-to-PDF você terá Ghostscript instalado qualquer maneira:

  gs \
    -o /path/to/resized.pdf \
    -sDEVICE=pdfwrite \
    -dPDFFitPage \
    -r300x300 \
    -g2550x3300 \
    /path/to/original.pdf

comandos mogrify / Converter do ImageMagick vai realmente fazer o trabalho. Stephen página tinha apenas sobre a idéia certa, mas você precisa para definir o dpi do arquivo, bem como, ou você não vai fazer o trabalho.

Supondo que você tenha um arquivo que é 300 dpi e já a mesma proporção de 8,5 x 11 o comando seria:

// 300dpi x 8.5 -2550, 300dpi x 11 -3300
convert original.pdf -density "300" -resize "2550x3300" resized.pdf

Se a proporção é diferente, então você precisa fazer alguns cortes ligeiramente mais complicado.

A abordagem Ghostscript funcionou bem para mim. (Eu me mudei meu arquivo do meu PC Windows para um computador Linux e correu lá.) Eu fiz uma pequena mudança para o comando Ghostscript porque o comando de redimensionamento Ghostscript enche acima completamente uma página de 8,5 por 11 polegadas. Minha impressora não pode imprimir até a borda, embora, por isso vários milllimeters ao longo de cada borda da página foram perdidos. Para superar esse problema, eu escalado o meu documento PDF a 0,92 de um total de 8,5 por 11 polegadas. Dessa forma, eu vi tudo centrado na página e teve uma ligeira margem. Porque 0,92 * (2550x3300) = (2346x3036), eu corri o seguinte comando Ghostscript:

  gs -sDEVICE=pdfwrite \
     -dPDFFitPage \
     -r300x300 \
     -g2346x3036 \
     /home/user/path/original.pdf \
     -o /home/user/path/resized.pdf
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top