2010-12-10 31 views
0

我的場景: 我在我的項目(C#)中有一個需求,我只需要給用戶提供閱讀功能,以便通過我的應用程序打開我的PowerPoint演示文稿。所有其他功能,如剪切,複製,粘貼,保存,saveas,打印,右鍵點擊上下文菜單應該被禁用。我怎樣才能實現這個在PowerPoint中編程方式使用C#?任何人都可以伸出援手嗎?禁用使用C#的PowerPoint功能

+0

我不認爲這個要求可以實施。即使採取嚴厲措施(如使用Flash或Silverlight提供原始像素),也不會阻止用戶截取演示文​​稿的屏幕截圖並在所得圖像上運行OCR程序。 – 2010-12-18 12:47:13

+0

只是想跟進,看看下面的答案是否回答你的問題。 – 2011-02-18 19:40:52

回答

1

可以發佈PPTPPS並使用該文件呢?

+0

沒有什麼能阻止用戶首先啓動powerpoint,然後file-> open選擇你的.pps並將其編輯爲他們心中的內容。將演示文稿保存爲功能點演示並不一定意味着用戶不能剪切,複製,粘貼,保存,保存,打印,右鍵單擊上下文菜單等。 – 2010-12-10 12:54:16

+0

@Peter,true,但我認爲OP會打開ppt/pps使用他的程序,因此隱藏文件的位置。否則,如果用戶可以物理訪問文件,這個問題就沒有意義了。 – Bolu 2010-12-10 13:02:36

0

你應該使用PowerPoint COM組件,有點像什麼這裏描述... Using C# to display powerpoint 我只用Word和Excel的人,我必須說,他們是非常容易使用。

或者是你必須讓它徹底只讀ID建議編寫自己的ODF解析器,或ODF COM組件調查,也許如果你有一個小數目,可以工作,以及:)

0

一種解決方案可能是使用類似Aspose.Slides的東西來將幻燈片呈現爲TIFF或PDF格式,然後在應用程序中顯示這些幻燈片。

+0

最新版本的PowerPoint可以直接保存爲PDF – 2010-12-18 18:05:44

0

假設您正在使用Powerpoint Automation。獲取PowerPoint.Application對象,然後遍歷CommandBars屬性併爲每個命令欄設置Visible爲false。

這應該至少刪除命令欄。而且Application對象上還有其他的屬性可以讓你禁用上下文菜單,但我從來沒有真正使用過Powerpoint,所以我不確定哪些屬性。

我不認爲有禁止打印等一共雖然什麼好辦法。但是,這篇MS KB文章討論了一種自動忽略任何對話框的方法,所以假設打印/保存等總是會彈出一個對話框(我不確定),您可能可以使用以下內容:How To Dismiss a Dialog Box Displayed by an Office Application with Visual Basic

這篇文章中的所有VB代碼,但想法都是類似的。

2

只要導出每個幻燈片作爲JPG或PNG和顯示那些:Slide.Export。這將用於靜態幻燈片視圖。如果您想保留PPT/PPTX的動畫,轉換,視頻/音頻和導航功能,則PowerPoint-to-Flash轉換器是更好的方法。 iSpring製作免費版本的轉換器:www.ispringfree.com。