Como posso dividir o arquivo PDF em camadas

1

Eu tenho um arquivo PDF grande contendo um mapa. O arquivo PDF provavelmente foi gerado com o AutoCAD.

A imagem consiste em um mapa raster colorido e um vetor com linhas no topo do mapa. (Linhas de ruas, etc.)

Eu preciso trabalhar com o raster e o vetor separadamente. Quando eu importo para o photoshop, ele só vê uma camada. Quando seleciono a guia de camadas no Adobe PDF Reader, ela também mostra apenas uma camada. Mas tenho certeza de que existem várias camadas, porque quando ele renderiza o arquivo, ele primeiro desenha o mapa em segundo plano e somente depois de começar a desenhar o vetor na parte superior. Se eu for rápido o suficiente, posso usar a "tela de impressão" para salvar a imagem de fundo. Preciso de um método mais confiável para extrair essa imagem e também o vetor.

Posso usar alguma ferramenta opensource como ghostscript para dividir o pdf em suas partes essenciais como texto, raster, dados vetoriais? E eles colocam todos em uma pasta?

    
por Benjamin Tamási 15.12.2015 / 19:14

2 respostas

0

Você deve trabalhar com a versão autocad ou exportá-la como camadas separadas. Uma vez exportada para um PDF, ela se torna uma imagem de bitmap que você não pode editar como camadas separadas.

    
por 15.12.2015 / 19:25
0

Eu encontrei uma solução manual usando Inkscape , estou procurando maneiras de automatizá-la.

  1. Abra o PDF no Inkscape (eu também tinha um mapa como o seu). Vá com as configurações de importação padrão.
  2. Menu > Objeto > Objetos (e não camadas)
  3. Abre um painel de objetos. Isso é como camadas. Podemos clicar nas colunas da esquerda para alternar a visibilidade, bloqueá-la, etc.
  4. Há um item lá, mas tem uma seta indicando que pode haver mais. Eu clico nele e ele se expande para mostrar vários subitens.
  5. Ao clicar em cada um deles, na imagem, os diferentes objetos são selecionados. Ao ativar a visibilidade (fechar o olho), cada objeto desaparece da imagem.
  6. Assim, depois de esconder todas as coisas que eu não queria, eu vou para o arquivo > Exportar imagem PNG. Eu tive que aumentar o tamanho e o DPI para obter uma boa resolução ... a configuração padrão tem uma pequena miniatura.
  7. Agora tenho o mapa de que precisava.

Estou lendo a documentação do Inkscape, atualizarei aqui se encontrar uma maneira de automatizar esse processo. [EDIT] Encontrou um modo de linha de comando para fazer isso.

inkscape -z -i g2846 -j -D -d 300 test3.pdf -e 3.png

Documento de referência: link

Explicando os parâmetros:

  • -z : no gui, execute o inkscape apenas na linha de comandos
  • -i g2846 : Selecionando o id de grupo / camada específico para exportar. Eu conheci este id / label pelas etapas manuais acima mencionadas no Inkscape.
  • -j : oculta todas as outras camadas etc na exportação
  • -D : mantém a dimensão da imagem de exportação igual ao desenho / doc inteiro e mantém a posição do objeto extraído. (isso é importante no caso de o objeto original ser girado / deformado e você desejar que a saída não seja original, ou se você estiver exaltando várias camadas e precisar manter suas posições na tela)
  • -d 300 : 300 DPI: o padrão fez com que a saída png ficasse com muito prejuízo, essa configuração manteve tudo bom no meu fim.
  • test3.pdf : minha entrada em pdf
  • -e 3.png : exportar como PNG e nome do arquivo fornecido.

Infelizmente, só podemos extrair um objeto / camada de cada vez por enquanto. Existe um bug arquivado para o inkscape solicitando permissão para múltiplas camadas: Permitir várias opções -i (--export-id = ID) .

[EDIT] Outra solução alternativa se você quiser várias (mas não todas) camadas: Use o comando inkscape compartilhado acima para obter camadas individuais como: 1.png, 2.png, 3.png Em seguida, execute o seguinte comando em imagemagick :

$ convert -page +0+0 1.png \
-page +0+0 2.png \
-page +0+0 3.png \
-layers merge +repage merged.png

Isso deve mesclar as camadas para merged.png .

    
por 20.02.2018 / 11:31