Estou tentando usar o programa de linha de comando convert
para levar um PDF para uma imagem (JPEG ou PNG). Aqui está um dos PDFs que estou tentando converter.
Quero que o programa reduza o excesso de espaço em branco e retorne uma imagem de qualidade alta o suficiente para que os sobrescritos possam ser lidos com facilidade.
Esta é a minha melhor tentativa atual . Como você pode ver, o corte funciona bem, só preciso aprimorar a resolução um pouco. Este é o comando que estou usando:
convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg
Eu tentei tomar as seguintes decisões conscientes:
- redimensioná-lo maior (não afeta a resolução)
- faça a qualidade o mais alta possível
- use o
-sharpen
(eu tentei um intervalo de valores)
Todas as sugestões sobre como obter a resolução da imagem no PNG / JPEG final mais alto serão muito apreciadas!
pdf
imagemagick
JBWhitmore
fonte
fonte
sips
, o "sistema de processamento de imagem programável". É um editor de imagens de linha de comando incorporado ao macOS, funciona em PDFs e em muitos outros tipos de imagens.Respostas:
Parece que o seguinte funciona:
Isso resulta na imagem esquerda . Compare isso com o resultado do meu comando original ( a imagem à direita ):
(Para realmente ver e apreciar as diferenças entre os dois, clique com o botão direito do mouse em cada um e selecione "Abrir imagem em nova guia ..." .)
Lembre-se também dos seguintes fatos:
Portanto, não há necessidade de redimensionar; adicione a
-density
bandeira. O valor da densidade 150 é estranho - tentar um intervalo de valores resulta em uma imagem com aparência pior nas duas direções!fonte
density
parâmetro é um pouco especial, pois deve vir antes do arquivo de entrada. Como o PDF é um formato de arquivo baseado em vetor que não tem (muito) noção de pixels, ele diz algo como "a página é 8 por 12 polegadas". Se você deseja pixel, use adensity
configuração para informar quantos pixels por polegada deseja obter na saída. Por exemplo. com 150, você obteria 8x150 = 1200 por 12x150 = 1800 pixels na imagem resultante. Essa também é a quantidade de pixels nas quais as configurações de nitidez, contraste, compactação etc.-flatten
.-density
e-flatten
para reduzir o tamanho de um pdf (para outro pdf). A-flatten
opção realmente ajuda muito na redução do tamanho total. No meu caso, sem distúrbios visuais.-density
sinalizador provavelmente dará resultados piores em valores mais altos se a qualidade da imagem inicial for inferior a isso.Pessoalmente, eu gosto disso.
É um pouco mais do dobro do tamanho do arquivo, mas parece melhor para mim.
-density 300
define o dpi em que o PDF é renderizado.-trim
remove os pixels de borda que são da mesma cor que os pixels de canto.-quality 100
define a qualidade da compactação JPEG para a mais alta qualidade.Coisas como
-sharpen
não funcionam bem com o texto porque desfazem o que o sistema de renderização de fontes fez para torná-lo mais legível.Se você realmente quiser, use o redimensionamento aqui e, possivelmente, um valor de dpi maior de algo como
targetDPI * scalingFactor
That irá renderizar o PDF na resolução / tamanho que você deseja.Descrições dos parâmetros em imagemagick.org estão aqui
fonte
convert
como saberemos quantas páginas foram convertidas?-sharpen
. A qualidade é muito melhor do que com os padrões e muito mais natural do que com-sharpen
.Eu uso
pdftoppm
na linha de comando para obter a imagem inicial, normalmente com uma resolução de 300 dpipdftoppm -r 300
, então usoconvert
para fazer o corte e a conversão de PNG.fonte
pdftoppm
também pode gerar JPEGs e PNGs.normalmente extraio a imagem incorporada com 'pdfimages' na resolução nativa e depois uso o convert do ImageMagick para o formato necessário:
isso gera o melhor e menor arquivo de resultado.
Nota: Para imagens incorporadas JPG com perdas, você tinha que usar -j:
Com o poppler recente, você pode usar tudo o que economiza perdas como jpg e sem perdas como png
Na plataforma Win pouco fornecida, você precisava fazer o download de um binário 'poppler-util' recente (0,37 2015) em: http://blog.alivate.com.au/poppler-windows/
fonte
pdftoppm
não compdfimages
Eu achei mais rápido e mais estável ao processar em lote PDFs grandes em PNGs e JPGs para usar o
gs
comando subjacente (também conhecido como Ghostscript) queconvert
usa.Você pode ver o comando na saída de
convert -verbose
e existem mais alguns ajustes possíveis lá (YMMV) que são difíceis / impossíveis de acessar diretamente viaconvert
.No entanto, seria mais difícil fazer o seu corte e afiação usando
gs
, então, como eu disse, YMMV!fonte
Também oferece bons resultados:
fonte
Usuário de Linux aqui: experimentei o
convert
utilitário de linha de comando (de PDF para PNG) e não fiquei satisfeito com os resultados. Achei isso mais fácil, com um resultado melhor:pdftk file.pdf cat 3 output page3.pdf
GIMP
Resolution
de100
para300
ou600 pixel/in
GIMP
exportação como PNG (altere a extensão do arquivo para .png)Editar:
Imagem adicionada, conforme solicitado no
Comments
. Comando Convert usado:convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png
GIMP
: importado a 300 dpi (px / in); exportado como nível de compactação PNG 3.Eu não usei o GIMP na linha de comando (re: meu comentário, abaixo).
fonte
convert
. Eu só vi a parte desta resposta mencionandoconvert
e sua pergunta enquanto lia seu comentário de automação. Obrigado pela sua resposta mais adiante neste tópico, que combinei com a solução à qual vinculei e resolvi um problema diferente que estava tendo.Realmente não tive um bom sucesso com
convert
[atualização de maio de 2020: na verdade: praticamente nunca funciona para mim], mas tive um EXCELENTE sucessopdftoppm
. Veja alguns exemplos de produção de imagens de alta qualidade a partir de um PDF:[Produz ~ arquivos com tamanho de 25 MB por página] Imprime o formato de arquivo .tif a 300 DPI em uma pasta chamada "images", com os arquivos denominados pg-1.tif , pg-2.tif , pg-3.tif , etc:
[Produz ~ arquivos com tamanho de 1 MB por página] Saída no formato .jpg a 300 DPI :
[Produz ~ arquivos com tamanho de 2 MB por página] Saída no formato .jpg com a mais alta qualidade (menos compactação) e ainda com 300 DPI :
Para mais explicações, opções e exemplos, veja minha resposta completa aqui:
/ubuntu/150100/extracting-embedded-images-from-a-pdf/1187844#1187844 .
Palavras-chave:
pdf2searchablepdf
] /ubuntu/473843/how-to-turn-a-pdf-into-a-text-searchable-pdf/1187881#1187881fonte
No ImageMagick, você pode fazer "superamostragem". Você especifica uma densidade grande e redimensiona o tamanho desejado para o tamanho final da saída. Por exemplo, com sua imagem:
Faça o download da imagem para ver em resolução máxima para comparação.
Não recomendo salvar em JPG se você espera fazer um processamento adicional.
Se você deseja que a saída tenha o mesmo tamanho da entrada, redimensione para o inverso da proporção da sua densidade para 72. Por exemplo, -densidade 288 e-redimensione 25%. 288 = 4 * 72 e 25% = 1/4
Quanto maior a densidade, melhor a qualidade resultante, mas levará mais tempo para processar.
fonte
Mais uma sugestão é que você pode usar o GIMP.
Basta carregar o arquivo PDF no GIMP-> salvar como .xcf e, em seguida, você pode fazer o que quiser com a imagem.
fonte
Eu uso o icepdf, um mecanismo java pdf de código aberto. Confira a demonstração do escritório .
Eu também tentei o imagemagick e o pdftoppm , tanto o pdftoppm quanto o icepdf têm alta resolução que o imagemagick.
fonte
Por favor, tome nota antes da votação, esta solução é para o Gimp usando uma interface gráfica, e não para o ImageMagick usando uma linha de comando, mas funcionou perfeitamente bem para mim como alternativa, e é por isso que achei necessário compartilhar aqui.
Siga estas etapas simples para extrair imagens em qualquer formato de documentos PDF
Isso é tudo.
Eu espero que isso ajude
fonte
O arquivo PNG que você anexou parece muito desfocado. Caso você precise usar um pós-processamento adicional para cada imagem gerada como visualização em PDF, você diminuirá o desempenho da sua solução.
O 2JPEG pode converter o arquivo PDF que você anexou em um bom JPG nítido e cortar margens vazias em uma chamada:
fonte
Use esta linha de comando:
Isso deve converter corretamente o arquivo, conforme solicitado.
fonte
O seguinte script python funcionará em qualquer Mac (Snow Leopard e para cima). Ele pode ser usado na linha de comando com arquivos PDF sucessivos como argumentos, ou você pode inserir uma ação Executar Script de Shell no Automator e criar um Serviço (Ação Rápida no Mojave).
Você pode definir a resolução da imagem de saída no script.
O script e uma Ação rápida podem ser baixados no github.
fonte
Você pode fazer isso no LibreOffice Draw (que geralmente é pré-instalado no Ubuntu ):
fonte
Eu usei pdf2image . Uma biblioteca python simples que funciona como charme.
Primeiro instale o poppler em uma máquina não-linux. Você pode apenas baixar o zip. Descompacte em Arquivos de Programa e adicione bin ao Caminho da Máquina.
Depois disso, você pode usar o pdf2image na classe python da seguinte forma:
Eu não sou bom com python, mas foi capaz de exe. Mais tarde, você pode usar o exe com o parâmetro de entrada e saída de arquivo. Eu usei em C # e as coisas estão funcionando bem.
A qualidade da imagem é boa. OCR funciona bem.
fonte
Na verdade, é muito fácil fazer o Preview no Mac. Tudo o que você precisa fazer é abrir o arquivo em Visualizar e salvar como (ou exportar) um png ou jpeg, mas certifique-se de usar pelo menos 300 dpi na parte inferior da janela para obter uma imagem de alta qualidade.
fonte