문제

Visio 웹 서비스를 통해 표시되는 Visio 문서의 확대/축소 수준을 설정하려고 합니다.

http://mysite/_layouts/VisioWebAccess/VisioWebAccess.aspx?id=/Shared%20Documents/MyDiagram.vdw

도구 모음 오른쪽에 있는 버튼을 누르면 '페이지에 맞춤' 확대/축소 수준을 사용하고 싶습니다.내 첫 번째 생각은 자바 스크립트를 통해 버튼을 클릭하는 것이었지만 즉각적인 성공을 거두지 못했고 MSDN 기사를 우연히 발견했습니다. Visio Services JavaScript API의 개체, Vwa.VwaControl.getActivePage 메서드 그리고 Vwa.Page.setZoom 메서드.

나는 성공적으로 구축할 수 있다 VwaControl 물체

vwaControl = new Vwa.VwaControl("ctl00_PlaceHolderMain_VisioWebAccess");

하지만 나는 얻는다 null 내가 전화할 때 getActivePage() 이 컨트롤에.

나는 다른 것을 만들어 보았습니다. VwaControl 페이지의 다른 ID를 사용했지만 그 중 어느 것도 유효하지 않습니다. "ID {0}에 대한 VwaControl이 존재하지 않습니다."와 같은 오류가 발생합니다.vwaControl._control._zoomControl._fitButton._clickDelegate에서 트리 아래로 이동하려고 시도했지만 해당 대리자를 실행하는 방법을 모르겠습니다.

혹시 '자동으로 크기에 맞게 확대/축소' 기능을 구현한 사람이 있나요? VisioWebAccess.aspx 페이지?

도움이 되었습니까?

해결책

Visio 문서에 자동으로 맞춰지도록 ASPX를 수정하는 것을 포기하고 대신 다른 솔루션을 찾았습니다.

파일을 저장하기 전에 Visio에서 '창에 맞춤'을 선택하세요.이 보기 기본 설정은 파일과 함께 저장되며 Visio 웹 서비스를 사용하여 열면 파일이 '창에 맞춤' 모드로 열립니다.

마찬가지로, 도면의 특정 부분을 확대하고 저장하면 동일한 확대/축소로 로드됩니다.

다른 팁

에서 스택 오버플로 'diagramComplete'에 핸들러를 추가한 다음 활성 페이지를 가져오는 광고를 시도해 보세요.

function zoomVWAControl()
{

    vwaControl= new Vwa.VwaControl("WebPartWPQ2");  
    vwaControl.addHandler("diagramcomplete", onDiagramComplete);
}

function onDiagramComplete()
{

 try{
        vwaPage = vwaControl.getActivePage();
        var zoomLevel = vwaPage.getZoom();
        vwaPage.setZoom(Number(200));
    }
    catch(err){
        alert(err);
    }
}

확대/축소 수준을 21%로 설정하고 Visio 웹 파트 ID("WebPartWPQ3")를 전달하여 vwaControl을 가져왔습니다.예상대로 작동하고 페이지 로드 시 확대/축소 수준을 21로 설정합니다.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
var vwaControl; 
var vwaPage;
$(document).ready(function(){
vwaControl= new Vwa.VwaControl("WebPartWPQ3"); 
vwaControl.addHandler("diagramcomplete", onDiagramComplete);
});
function onDiagramComplete(){ 
    try{ 
        vwaPage = vwaControl.getActivePage();         
        var zoomLevel = '21';  
        vwaPage.setZoom(Number(zoomLevel)); 
    } 
    catch(err){ 
        alert(err); 
    } 
} 
</script>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top