Автоматизация PowerPoint с помощью Visual J ++ 6.0В данной статье описывается, как для автоматизации Microsoft PowerPoint с помощью Microsoft Visual J ++ 6.0. Можно также применить подобный код и аналогичные процедуры автоматизации других приложений Microsoft Office. Выполните следующие действия для создания и запуска Visual J ++ пример. - Запуска Visual J ++ 6.0. Создайте новый проект консольного приложения с именем JavaPpt.
- ВОкно проектаоткрытое окно наПроектдерева, а затем дважды щелкните значокClass1.Javaфайл, созданный для вас.
- ИзПроектменю, нажмите кнопкуДобавление программы-оболочки COMщелкнитеБиблиотека объектов Microsoft PowerPoint 8.0(или 9.0 для PowerPoint 2000, 10.0 для PowerPoint 2002.), а затем нажмите кнопкуОК. Для добавления оболочек COM Java, которые являются производными от msppt8.olb библиотеки типов Microsoft PowerPoint в проект. Библиотека типов для PowerPoint 2000 называется msppt9.0lb. Библиотека типов для PowerPoint 2002 является msppt.olb.
- В верхней части файла 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().
- В функции 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;
- ИзОтладкаменю, нажмите кнопкуЗапустить(или нажмите клавишу F5) для построения и выполнения примера.
Для получения дополнительных сведений о Visual J ++ и автоматизации обратитесь к следующим статьям Microsoft Knowledge Base: 169173
(http://support.microsoft.com/kb/169173/EN-US/
)
Информация: часто задать вопросы по Visual J ++ Код статьи: 215484 - Последнее изменение :: 6 октября 2011 г. - Редакция: 4.0 Информация в данной статье относится к следующим продуктам.- Microsoft PowerPoint 2002 Standard Edition
- Microsoft PowerPoint 2000 Standard Edition
- Microsoft PowerPoint 97 Standard Edition
- Microsoft Visual J++ 6.0 Standard Edition
| kbautomation kbhowto kbmt KB215484 KbMtru |
Переведено с помощью машинного переводаВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода. Эта статья на английском языке: 215484
(http://support.microsoft.com/kb/215484/en-us/
)
| |