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

13

É 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 odtarquivos e outros documentos do escritório.

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

Glutanimado
fonte

Respostas:

10

Obrigado por todas as respostas, pessoal. 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 : unzippode 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 wvpacote. 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: pdfinfofaz parte poppler-utilse deve vir pré-instalado no Ubuntu.

DJVU

djvused -e "n" sample.djvu

Nota: djvusedfaz parte do djvulibre-binpacote e pode ser instalado com sudo apt-get install djvulibre-bin.

Glutanimado
fonte
6
unzip -p document.odt meta.xml | grep -o 'page-count="[0-9]*"'

Veja aqui para mais referência .

Nykakin
fonte
Obrigado pelo link! essa foi uma leitura muito interessante. Eu aceitaria sua resposta, mas encontrei alguns outros comandos bacanas para outros documentos do escritório e os compilei em uma resposta própria. Espero que você não se importe.
Glutanimate
5

Não encontrei uma maneira de extrair odtas informações do arquivo pdfinfo, mas você pode criar um script rápido para usar pdfinfocom os odtarquivos, converter cada arquivo odt em PDF e, posteriormente, excluir o arquivo convertido, caso não o utilize:

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

Espero que isso tenha ajudado.

Leo
fonte