如何使用 Visual J + + 6.0 使 PowerPoint 自动化

文章翻译 文章翻译
文章编号: 215484 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

概要

本文介绍如何通过使用 Microsoft Visual J + + 6.0 中自动执行 Microsoft PowerPoint。您还可以将应用类似的代码和类似的过程,以自动执行其他 Microsoft Office 应用程序。

更多信息

请按照下列步骤以生成并运行 Visual J + + 示例。
  1. 启动 Visual J + + 6.0。创建新的控制台应用程序项目并将其命名 JavaPpt。
  2. 工程资源管理器 窗口中打开您的 项目 树,并双击 Class1.java 文件为您创建。
  3. 项目 菜单中单击 添加 COM 包装 并单击 Microsoft PowerPoint 8.0 对象库 (或者对于 PowerPoint 2000 9.0 或 PowerPoint 2002 的 10.0,然后单击 确定。这将添加到您的项目从 PowerPoint 类型库 msppt8.olb 派生的 Java COM 包装。类型库中的 PowerPoint 2000 命名 msppt9.0lb。PowerPoint 2002 的类型库是 msppt.olb。
  4. 您 Class1.Java 文件顶部添加下面的导入语句:
    import msppt8.*; // PowerPoint support.  Use msppt9.* for 2000, and msppt.* for 2002
    import com.ms.com.*; // Variant & exception support. 
    import java.lang.InterruptedException; // Needed for Thread.sleep().
    						
  5. 在您的 main () 函数中添加以下代码:
    // Force COM objects to be created on the current thread.
    // Otherwise, older VMs might not release all references
    // and PowerPoint might continue to run after you shutdown.
    ComLib.declareMessagePumpThread();
    	
    // Launch PowerPoint.
    Application app = new Application();
    			
    // Add a presentation.
    Presentation pres = app.getPresentations().Add(1);
    
    // Add a slide with text layout.
    Slide slide1 = pres.getSlides().Add(1, PpSlideLayout.ppLayoutText);
    // Add text to slide.
    slide1.getShapes().Item(new Variant(1)).getTextFrame().getTextRange().setText("My first slide");
    	slide1.getShapes().Item(new Variant(2)).getTextFrame().getTextRange().setText("Automating PowerPoint is easy!\r\nUsing VJ++ is fun.");
    
    // Add another slide, but with text and chart.
    Slide slide2 = pres.getSlides().Add(2, PpSlideLayout.ppLayoutTextAndChart);
    // Add text to slide.
    slide2.getShapes().Item(new Variant(1)).getTextFrame().getTextRange().setText("Slide 2's topic");
    slide2.getShapes().Item(new Variant(2)).getTextFrame().getTextRange().setText("You can create and use charts in your PowerPoint slides!");
    
    // Add chart where default chart is.
    {
    	Variant index = new Variant(3);
    	float top = slide2.getShapes().Item(index).getTop();
    	float width = slide2.getShapes().Item(index).getWidth();
    	float height = slide2.getShapes().Item(index).getHeight();
    	float left = slide2.getShapes().Item(index).getLeft();
    	slide2.getShapes().AddOLEObject(left, top, width, height, "MSGraph.Chart", "", 0, "", 0, "", 0);
    	// Remove old/default chart.
    	slide2.getShapes().Item(index).Delete();
    }
    
    // Add another slide, but with text and org-chart.
    Slide slide3 = pres.getSlides().Add(3, PpSlideLayout.ppLayoutOrgchart);
    // Add title for this slide.
    slide3.getShapes().Item(new Variant(1)).getTextFrame().getTextRange().setText("The rest is only limited by your Imagination");
    // Add a new org chart where existing one is.
    {
    	Variant index = new Variant(2);
    	float top = slide3.getShapes().Item(index).getTop();
    	float width = slide3.getShapes().Item(index).getWidth();
    	float height = slide3.getShapes().Item(index).getHeight();
    	float left = slide3.getShapes().Item(index).getLeft();
    	slide3.getShapes().AddOLEObject(left, top, width, height, "OrgPlusWOPX.4", "", 0, "", 0, "", 0);
             // OrgPlusWOPX.4 is provided by the Microsoft Organization Chart application.
    	// Remove old/default org-chart.
    	slide3.getShapes().Item(index).Delete();		
    }
    	
    // Setup slide-show properties.
    {
    	Variant varOpt = new Variant();
    	varOpt.noParam();
    	SlideShowTransition sst;
    	sst = pres.getSlides().Range(varOpt).getSlideShowTransition();
    	sst.setEntryEffect(PpEntryEffect.ppEffectRandom);
    	sst.setAdvanceOnTime(1);
    	sst.setAdvanceTime(5); // 5 seconds per slide
    	sst = null;
    }
    {
    	SlideShowSettings sss;
    	sss = pres.getSlideShowSettings();
    	sss.setShowType(PpSlideShowType.ppShowTypeKiosk);
    	sss.setLoopUntilStopped(1);
    	sss.setRangeType(PpSlideShowRangeType.ppShowAll);
    	sss.setAdvanceMode(PpSlideShowAdvanceMode.ppSlideShowUseSlideTimings);
    	// Run slide show...
    	sss.Run();
    	sss = null;
    }
    
    // Sleep for a while so user can watch slide show.
    try {
    	Thread.sleep(15000);
    } catch(InterruptedException e) {}
    
    // Stop slide show.
    try {
    	pres.getSlideShowWindow().getView().Exit();
    } catch(ComFailException e) {}
    	
    // Clean up.
    pres.Close();
    app.Quit();
    slide3 = null;
    slide2 = null;
    slide1 = null;
    pres = null;
    app = null;
    						
  6. 调试 菜单中单击 开始 (或,请按 F5) 生成并运行该示例。

参考

有关 Visual J + + 和自动化的其他信息,请参阅 Microsoft 知识库中下面的文章:
169173 信息: 频繁请求的 Visual J + + 的问题

属性

文章编号: 215484 - 最后修改: 2013年10月14日 - 修订: 4.4
这篇文章中的信息适用于:
  • Microsoft PowerPoint 2002 标准版
  • Microsoft PowerPoint 2000 标准版
  • Microsoft PowerPoint 97 标准版
  • Microsoft Visual J++ 6.0 标准版
关键字:?
kbnosurvey kbarchive kbmt kbautomation kbhowto KB215484 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 215484
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com