Como posso determinar a contagem de páginas de odt, doc, docx e outros documentos de escritório da CLI?

11

É fácil encontrar a contagem de páginas de um documento PDF na linha de comando:

pdfinfo sample.pdf | grep ^Pages:

... mas não consegui encontrar um método semelhante para odt arquivos e outros documentos do Office.

Existe uma maneira de determinar programaticamente a contagem de páginas desses documentos?

    
por Glutanimate 08.06.2013 / 13:55

3 respostas

8

Obrigado por todas as respostas, todos. Com sua ajuda, consegui compilar uma lista de comandos que podem extrair a contagem de páginas de quase todos os documentos relevantes do escritório:

DOCX / PPTX

unzip -p 'sample.docx' docProps/app.xml | grep -oP '(?<=\<Pages\>).*(?=\</Pages\>)'

unzip -p 'sample.pptx' docProps/app.xml | grep -oP '(?<=\<Slides\>).*(?=\</Slides\>)'

Nota : unzip pode ser instalado com sudo apt-get install unzip .

DOC / PPT

wvSummary sample.doc | grep -oP '(?<=of Pages = )[ A-Za-z0-9]*'

wvSummary sample.ppt | grep -oP '(?<=of Slides = )[ A-Za-z0-9]*'

Nota : wvSummary (diferencia maiúsculas de minúsculas!) faz parte do pacote wv . Instale-o com sudo apt-get install wv .

ODT

unzip -p sample.odt meta.xml | grep -oP '(?<=page-count=")[ A-Za-z0-9]*'

PDF

pdfinfo sample.pdf | grep -oP '(?<=Pages:          )[ A-Za-z0-9]*'

Nota: pdfinfo faz parte de poppler-utils e deve vir pré-instalado no Ubuntu.

DJVU

djvused -e "n" sample.djvu

Observação: djvused faz parte do pacote djvulibre-bin e pode ser instalado com sudo apt-get install djvulibre-bin .

    
por Glutanimate 08.06.2013 / 18:10
5
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'

Veja aqui para mais referências .

    
por Nykakin 08.06.2013 / 14:19
4

Não encontrei uma maneira de extrair as informações do arquivo odt como pdfinfo , mas você pode criar um script rápido para usar pdfinfo com os arquivos odt , convertendo cada arquivo odt para PDF e mais tarde excluindo o arquivo convertido se você não for usá-lo:

libreoffice --headless --invisible --convert-to pdf sample.odt
pdfinfo sample.pdf | grep ^Pages:
rm sample.pdf

Espero que isso tenha ajudado você.

    
por Leo 08.06.2013 / 14:08