php com word set área editable (edición restringida, algunas editables, otras no editables)

Inserte la descripción de la imagen aquí
El contenido del documento de prueba es como se muestra en la figura anterior.

 // 打开word 编辑
        $file = 'C:/Users/Administrator/Desktop/11.doc';
        $word = new \com("word.application",null,CP_UTF8) or die("Unable to instantiate Word");
        $word->Visible = 0;
        $word->Documents->Open($file,true,false);
        // wdAllowOnlyReading 3
        // https://docs.microsoft.com/en-us/office/vba/api/word.wdprotectiontype
        if($word->ActiveDocument->ProtectionType!=-1){
            $word->ActiveDocument->UnProtect('123456');
        }
        $Paragraphs = $word->ActiveDocument->Paragraphs;
        for ($i = 1; $i <= $Paragraphs->Count; $i++) {
            if($i==1||$i==3){ //给需要编辑的区域添加editor
                // -1 代表everyone
                $Paragraphs->Item($i)->Range->Editors->Add(-1);
            }
        }
        $word->ActiveDocument->Protect(3,false,'123456',false,true);
        $word->ActiveDocument->Save();
        $word->Quit();
        $word = null;

Si desea que la parte editable de un documento protegido no se pueda editar, solo necesita eliminar el editor en su área. Por ejemplo, si somete el documento anterior al siguiente lanzamiento, todas las partes del documento no serán editables:

$file = 'C:/Users/Administrator/Desktop/11.doc';
        $word = new \com("word.application",null,CP_UTF8) or die("Unable to instantiate Word");
        $word->Visible = 0;
        $word->Documents->Open($file,true,false);

        $Paragraphs = $word->ActiveDocument->Paragraphs;
        for ($i = 1; $i <= $Paragraphs->Count; $i++) {
            $Editors = $Paragraphs->Item($i)->Range->Editors;
            if($Editors->Count>0){
                for($j=1;$j<=$Editors->Count;$j++){
                    $Editors->Item($j)->Delete();
                }
            }
        }

        $word->ActiveDocument->Save();
        $word->Quit();
        $word = null;

Supongo que te gusta

Origin blog.csdn.net/wang740209668/article/details/108604975
Recomendado
Clasificación