質問

Visio Web サービスを通じて表示される Visio ドキュメントのズーム レベルを設定しようとしています。

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

ツールバーの右側にあるボタンを押すと、「ページに合わせる」ズーム レベルを使用したいと考えています。最初に考えたのは、JavaScript 経由でボタンをクリックすることでしたが、すぐには成功せず、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 Web Services を使用してファイルを開くと、ファイルは「ウィンドウに合わせる」モードで開きます。

同様に、図面の特定の部分をズームインして保存すると、同じズームでロードされます。

他のヒント

から スタックオーバーフロー ハンドラーを「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% に設定し、vwaControl を取得するために Visio Web パーツ ID("WebPartWPQ3") を渡しました。期待どおりに動作し、ページの読み込み時にズームレベルを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