2016-10-24 4 views
0

PHPWord의 템플릿 파서를 사용하여 문서를 만든 다음 명령 줄을 사용하여 문서를 자동으로 인쇄합니다. 문서는 인증서이므로 단일 페이지에 있어야하며 특수 용지에 인쇄해야합니다.PHPWord - 페이지 수 얻기?

나는 사람들의 이름을 더하고 있습니다. 그래서 더 긴 이름을 가진 사람들은 한 줄을 두 줄로 던져서 두 번째 페이지로 모든 것을 밀어 넣을 수 있습니다.

PHPWord는 페이지 수를 세는 방법이 있습니까? 따라서 페이지 수가 1을 초과하면 오류가 발생할 수 있습니까?

+1

[Google : PHPWord 계산 페이지] (https://www.google.nl/?gfe_rd=cr&ei=AocNWNSmIsnDaKLdsqAP#q=phpword+count+pages) 첫 번째 결과 : [PHPword, 총 페이지 수] (http : //stackoverflow.com/questions/30143941/phpword-get-total-number-of-pages). 왜 질문을 하느냐? 1) 전에 질문을 받았다. 2) 대답했다. 3) 당신은이 질문을 만드는 것보다 빨리 자신을 발견 할 수 있었다. – icecub

+0

@icecub 그 질문이 제기 된 이후 거의 1 년 반이 지났기 때문에. 그때까지 옵션을 추가 할 수있었습니다. 또한 "해킹"하는 방법이있을 수 있습니다. 템플릿에서 이미지를 바꾸는 방법에 대해 문서를 검색했을 때 거의 찾지 못했지만 zip 클래스를 사용하여 이미지를 삭제하고 다시 추가하여 대답을 찾았습니다. 해키,하지만 효과가 있었어. 그래서 나는 당신이 게시 한 링크에 주어진 대답에 만족하지 않았기 때문에이 질문을 던졌습니다. – DrFrankly

+0

"해킹"을하는 대신 뿌리에서 문제를 해결하는 것이 더 좋은 생각 일 수 있습니다. 안전하게 인쇄 할 수있는 최대 문자 수를 확인하고 사용자가 더 많은 문자를 입력하지 못하도록하십시오. 문서를 작성하기 전에 양식을 통해 많은 문자를 제출하면 오류가 발생하기 전에 문제를 파악하십시오. 또는 [FPDF] (http://www.fpdf.org/)와 같은 다른 솔루션을 검색하십시오. – icecub

답변

0

소스를 통해 pawing 한 후에는 아직 수행 할 수없는 것처럼 보입니다.

그러나 app.xml에는 에 페이지 수를 포함해야하는 "Pages"라는 태그가 있습니다. 나는 그것이 정확하다고 생각하지 않지만, 적어도 그것은 무언가이다.

// 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>(.*)\<\/Pages\>/", $zip->getFromName("docProps/app.xml"), $var); 
    return $var[0]; 
    } 

이 2 페이지가 있어야 문서에 나를 위해 1를 반환

는 여기에 몇 가지 예제 코드입니다. PHPWord가 페이지 수를 계산하지 않거나 페이지 나누기 수를 계산하지 않아도되지만 적어도 시작일 수 있습니다.

편집 : 말씀 명령 줄을 사용하여, 나는 프로그래밍 방식으로 페이지 수 업데이트 할 수 있습니다

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

이 두 번째 또는 두 세대를 추가,하지만 적어도 지금은 정확하게 페이지의 수를 감지 할 수 있습니다