Como converter PDF em ASCII Postscript para que o texto contido possa ser pesquisado / substituído?

2

De acordo com o Capítulo 3.2 da Referência de Linguagem PostScript , "existem três codificações para a linguagem PostScript: ASCII, token binário e seqüência de objetos binários ".

Estamos gerando arquivos PDF de HTML / CSS com o PrinceXML há algum tempo. Recentemente, surgiu uma nova exigência em cooperação com outra empresa que precisa do conteúdo de nossos arquivos PDF como Postscript. Ao converter o PDF para PS através da linha de comando usando pdf2ps, pdftops, a2ping ou outros, os arquivos PS resultantes parecem ter uma das codificações binárias, já que não há como pesquisar texto.

Estamos entregando o arquivo PS alguns dias antes da impressão e não sabemos a data de impressão de antemão, mas, como requisito, a data de impressão precisa ser impressa. Portanto, precisamos inserir um marcador de data (##. ##. ####), que eles substituirão automaticamente ao imprimir.

Se inserirmos esse marcador em nossa representação HTML / CSS, ele não poderá ser pesquisado no conteúdo do arquivo postscript e, portanto, não será substituído pela data atual antes da impressão.

Alguém sabe uma maneira de converter o PDF em ASCII PostScript para que o texto contido possa ser pesquisado e substituído?

    
por Codepunkt 16.06.2011 / 17:28

2 respostas

0

Eu não tive sorte com o pd2fps.

Com o pdftops versão 0.12.4, empacotado com o poppler eu posso encontrar texto no código PS, mas apenas uma palavra por vez (cada palavra é cercada por parênteses).

Por exemplo, faça o download

wget ctan.org/tex-archive/macros/latex/contrib/lipsum/lipsum.pdf
pdftops lipsum.pdf
sed 's;2011/;2012/;' lipsum.ps > lipsum2.ps

Isso mudará o ano (presente no início do arquivo) de 2011 para 2012, mas preste atenção, porque nem sempre é possível alterar o texto, dependendo da estrutura do código PS, pode não haver espaço suficiente para substitua o texto. Experimente o exemplo anterior com 2013 em vez de 2012 e você verá.

Eu não entendo postscript, mas eu suspeito que alguma conversão pode levar a um arquivo de texto parcialmente binário e parcialmente, se assim for tentar usar sed que vai deixar os bytes não textuais como é.

    
por 09.09.2011 / 00:53
0

Outra solução consiste em modificar o pdf original para que a data esteja em um formulário e depois usar o flpsed para preenchê-lo! Confira aqui: link

    
por 22.09.2011 / 11:23