PHPWord – Obtendo uma contagem de páginas?

Estou usando o analisador de modelo do PHPWord para fazer um documento, depois a linha de comando para imprimir automaticamente o documento. O documento DEVE ser em uma única página, porque é um certificado e deve ser impresso em papel especial.

Estou adicionando nomes de pessoas, então as pessoas com nomes mais longos podem jogar uma linha em duas, e empurrar tudo para uma segunda página.

O PHPWord tem uma maneira de contar o número de páginas, então eu posso gerar um erro se o número de páginas exceder um?

Depois de passar pela fonte, parece que ainda não pode ser feito.

No entanto, no app.xml existe uma etiqueta chamada “Páginas” que deve conter o número de páginas. Eu não acho que é preciso, mas é pelo menos algo.

Aqui está algum código de exemplo:

// Include PHPWord and other stuff before here function getPages() { $zip = new \PhpOffice\PhpWord\Shared\ZipArchive(); $zip->open("/path/to/your/document.docx"); preg_match("/\(.*)\< \/Pages\>/", $zip->getFromName("docProps/app.xml"), $var); return $var[0]; } 

Isso retorna 1 para mim em um documento que deve ter 2 páginas. Poderia ser o PHPWord não incomodar para calcular o número de páginas, ou conta apenas quebras de página, mas pelo menos é um começo.

EDITAR: Usando a linha de comando do Word, posso atualizar a contagem de páginas programaticamente:

\path\to\winword.exe /mToolsWordCountRecount /mFileSave /mFileCloseOrExit myfile.docx

Isso adiciona um segundo ou dois a geração, mas pelo menos agora eu posso detectar com precisão o número de páginas