vsto将pptppt不需要的文本框怎么删除设置为默认ppt不需要的文本框怎么删除?

Microsoft.Office.Interop.PowerPoint.Application PPT = new Microsoft.Office.Interop.PowerPoint.Application();//创建PPT应用
Microsoft.Office.Interop.PowerPoint.Presentation MyPres = null;//PPT应用的实例
Microsoft.Office.Interop.PowerPoint.Slide MySlide = null;//PPT中的幻灯片
MyPres = PPT.Presentations.Open("文件路径", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoTrue);//此处将一个PPT实例给了MyPres
MySlide = MyPres.Slides.Add(1, Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutBlank);//像PPT实例中,添加一个空白页,位置是“第一页”
4.向PPT的幻灯片中添加元素
4.1文本框
Microsoft.Office.Interop.PowerPoint.TextRange MyTextRng = null;
MySlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, 21.5F, 365F, 670F, 270F);
MyTextRng = MySlide.Shapes[1].TextFrame.TextRange;//请注意此处Shapes的索引,由于文本框是第一个添加的Shapes,所以此处索引是1。
MyTextRng.Font.NameFarEast = "微软雅黑";//文本框中,中文的字体
MyTextRng.Font.NameAscii = "Calibri";//文本框中,英文和数字的字体
MyTextRng.Text ="C#生成PPT";//显示的内容
MyTextRng.Font.Bold = MsoTriState.msoTrue;//是否加粗
MyTextRng.Font.Color.RGB = A+ B * 256 + C * 256 * 256;//字体颜色,其中ABC直接用自定义颜色中的数字代替即可。
MyTextRng.Characters(1, 10).Font.Size = 24;//个性化设计。第1个字符开始,长度为10的字符,字体大小是24.
MyTextRng.ParagraphFormat.Alignment = Microsoft.Office.Interop.PowerPoint.PpParagraphAlignment.ppAlignLeft;//文本对齐方式(水平方向)
MySlide.Shapes[1].TextFrame.VerticalAnchor = MsoVerticalAnchor.msoAnchorMiddle; 文本对齐方式(垂直方向)
心得:最重要的设置在Font属性中。其他设置,基本可以参考PPT中元素属性的设置方式来找到。比如我在写文本水平对齐方式时(左对齐,居中,右对齐),在PPT中,我们直接点击“段落”中的快捷键即可。所以我就找“段落”的英文,正好Alignment是对齐的意思,所以就找到了。
4.2 图形(矩形)
MySlide.Shapes.AddShape(MsoAutoShapeType.msoShapeRectangle, 8.5F, 6.5F, 705F, 525F);
MySlide.Shapes[1].Line.ForeColor.RGB = A + B * 256 + C * 256 * 256;//改变线条颜色
MySlide.Shapes[1].Fill.Transparency = 1;//控制填充色为透明
MySlide.Shapes[1].Line.Style = MsoLineStyle.msoLineSingle;//改变线型里的复合类型
MySlide.Shapes[1].Line.Weight = 1F;//改变线粗细
MySlide.Shapes[1].Shadow.Style = MsoShadowStyle.msoShadowStyleOuterShadow;//控制阴影类型
MySlide.Shapes[1].Shadow.ForeColor.RGB = 0;//控制阴影颜色
MySlide.Shapes[1].Shadow.Transparency = 0.6F;//控制透明度
MySlide.Shapes[1].Shadow.Size = 100F;//控制大小
MySlide.Shapes[1].Shadow.Blur = 4F;//控制虚化
MySlide.Shapes[1].Shadow.OffsetX = 2.1F;//控制距离;
MySlide.Shapes[1].Shadow.OffsetY = 2.1F;//与offsetX共同决定角度
心得:基本的一些设置,通过英文就可以辨别。不过有些属性的设置是否与预期一致,需要等图形生成后再进一步确认。
4.3 图片
MySlide.Shapes.AddPicture("文件路径", MsoTriState.msoFalse, MsoTriState.msoTrue, 27F, 24F, 665F, 333F);
4.4 表格
Microsoft.Office.Interop.PowerPoint.Table MyTable = null;
MyTable = MySlide.Shapes.AddTable(19, 5, 40F, 100F, 10F, 10F).Table;//创建时规定的宽和高,不是表格最终的大小。
MyTable.Cell(k, j).Shape.TextFrame.TextRange.Font.Size = 10;
MyTable.Cell(k, j).Shape.TextFrame.TextRange.Font.Color.RGB = A + B * 256 + C * 256 * 256;
MyTable.Cell(k, j).Shape.TextFrame.TextRange.Font.NameAscii = "Arial";
MyTable.Cell(k, j).Shape.TextFrame.TextRange.Font.NameFarEast = "微软雅黑";
MyTable.Cell(k, j).Shape.TextFrame.TextRange.Font.Bold = MsoTriState.msoTrue;
MyTable.Cell(k, j).Shape.TextFrame.TextRange.ParagraphFormat.Alignment = Microsoft.Office.Interop.PowerPoint.PpParagraphAlignment.ppAlignCenter;
MyTable.Cell(k, j).Shape.TextFrame.VerticalAnchor = MsoVerticalAnchor.msoAnchorMiddle;
MyTable.Cell(k, j).Shape.Fill.ForeColor.RGB = 0;
MyTable.Cell(k, j).Shape.TextFrame.TextRange.Text = "C#生成PPT";
这里的设置,几乎和文本框的设置一样。只不过需要先选定Cell。一些个性化的设计,比如合并拆分单元格,边框颜色,按照一般的英文意思都能找到。
4.5 图表
Microsoft.Office.Interop.PowerPoint.Chart MyChart = null;//图表
Microsoft.Office.Interop.PowerPoint.ChartData MyChartData = null;//图表的数据源
Microsoft.Office.Interop.PowerPoint.Axis MyYvalaxis = null;//图表的纵坐标
Microsoft.Office.Interop.PowerPoint.Axis MyXvalaxis = null;//图表的横坐标
Microsoft.Office.Interop.PowerPoint.DataLabels MyDataLabels = null;//图表的数据标签
Microsoft.Office.Interop.PowerPoint.Series MySeries = null;//数据系列
Microsoft.Office.Interop.PowerPoint.ChartGroups MyChartGroups = null;//数据系列-系列选项
Microsoft.Office.Interop.PowerPoint.Points MyPoints = null; //数据系列
MyChart = MySlide.Shapes.AddChart(Microsoft.Office.Core.XlChartType.xlColumnClustered, 35F, 205F, 642F, 227F).Chart;//添加柱形图
MyChartData = MyChart.ChartData;//实例化数据源
Microsoft.Office.Interop.Excel.Workbook MyDataWorkbook_2 = (Microsoft.Office.Interop.Excel.Workbook)MyChartData.Workbook;//由于PPT的数据源是EXCEL工作表,所以此处还要调用EXCEL。
MyDataWorkbook_2.Application.WindowState = XlWindowState.xlMinimized;//不想看那么多窗口,所以最小化了。
Microsoft.Office.Interop.Excel.Worksheet MyDataWorksheet_2 = (Microsoft.Office.Interop.Excel.Worksheet)MyDataWorkbook_2.Worksheets[1];//实例化工作表
Microsoft.Office.Interop.Excel.Range tRange_2 = MyDataWorksheet_2.Cells.get_Range("A1", "C10");//选定数据区域
Microsoft.Office.Interop.Excel.ListObject tbl1_2 = MyDataWorksheet_2.ListObjects[1];
tbl1_2.Resize(tRange_2);
//赋值
((Microsoft.Office.Interop.Excel.Range)(MyDataWorksheet_2.Cells.get_Range("A2"))).FormulaR1C1 = "全国得分";
((Microsoft.Office.Interop.Excel.Range)(MyDataWorksheet_2.Cells.get_Range("A3"))).FormulaR1C1 = null;
//图表标题
MyChart.ChartTitle.Delete();
//纵轴
MyYvalaxis = (Microsoft.Office.Interop.PowerPoint.Axis)MyChart.Axes(Microsoft.Office.Interop.PowerPoint.XlAxisType.xlValue, Microsoft.Office.Interop.PowerPoint.XlAxisGroup.xlPrimary);
MyYvalaxis.MajorGridlines.Delete();//删除主横网络线
MyYvalaxis.MajorUnit = 0.5F;
MyYvalaxis.MinimumScale = 0.0F;
MyYvalaxis.MaximumScale = 1.5F;
MyYvalaxis.Format.Line.ForeColor.RGB = A + B * 256 + C * 256 * 256; ;//坐标轴颜色
MyYvalaxis.Format.Line.Transparency = 1F;//坐标轴是否透明;此句必须先指定颜色,否则无效
MyYvalaxis.TickLabels.Delete();//删除坐标标签
//横轴
MyXvalaxis = (Microsoft.Office.Interop.PowerPoint.Axis)MyChart.Axes(Microsoft.Office.Interop.PowerPoint.XlAxisType.xlCategory, Microsoft.Office.Interop.PowerPoint.XlAxisGroup.xlPrimary);
MyXvalaxis.MajorTickMark = Microsoft.Office.Interop.PowerPoint.XlTickMark.xlTickMarkOutside;//主要刻度线类型
MyXvalaxis.Format.Line.Weight = 0.75F;//线型宽度
MyXvalaxis.Format.Line.ForeColor.RGB = A + B * 256 + C * 256 * 256;//线条颜色
MyXvalaxis.TickLabelPosition = Microsoft.Office.Interop.PowerPoint.XlTickLabelPosition.xlTickLabelPositionNone;
//图例
MyChart.Legend.Delete();
//数据标签格式和系列
//系列1
MySeries = (Microsoft.Office.Interop.PowerPoint.Series)MyChart.SeriesCollection(1);
MySeries.HasDataLabels = true;
MySeries.Format.Fill.ForeColor.RGB = A + B * 256 + C * 256 * 256;
MySeries.Format.Line.ForeColor.RGB = A + B * 256 + C * 256 * 256;
MySeries.Format.Line.Weight = 1.5F;
MySeries.Format.Shadow.Style = MsoShadowStyle.msoShadowStyleOuterShadow;//控制阴影类型
MySeries.Format.Shadow.ForeColor.RGB = 0;//控制阴影颜色
MySeries.Format.Shadow.Transparency = 0.6F;//控制透明度
MySeries.Format.Shadow.Size = 100F;//控制大小
MySeries.Format.Shadow.Blur = 4F;//控制虚化
MySeries.Format.Shadow.OffsetX = 2.1F;//控制距离;
MySeries.Format.Shadow.OffsetY = 2.1F;//与offsetX共同决定角度
//柱子颜色
MyPoints = (Microsoft.Office.Interop.PowerPoint.Points)MySeries.Points();
MyPoints.Item(1).Format.Fill.ForeColor.RGB = A + B * 256 + B * 256 * 256;//系列1中,第1个柱子的颜色
//柱子距离
MyChartGroups = (Microsoft.Office.Interop.PowerPoint.ChartGroups)MyChart.ChartGroups();
MyChartGroups.Item(1).GapWidth = 50;
//数据标签
MyDataLabels = (Microsoft.Office.Interop.PowerPoint.DataLabels)MySeries.DataLabels();
MyDataLabels.Position = Microsoft.Office.Interop.PowerPoint.XlDataLabelPosition.xlLabelPositionOutsideEnd;
MyDataLabels.NumberFormat = "0.0%";
MyDataLabels.Format.TextFrame2.TextRange.Font.Size = 9F;
MyDataLabels.Format.TextFrame2.TextRange.Font.NameAscii = "Calibri";
MyDataLabels.Format.TextFrame2.TextRange.Font.Bold = MsoTriState.msoTrue;
//系列2
MySeries = (Microsoft.Office.Interop.PowerPoint.Series)MyChart.SeriesCollection(2);
MySeries.HasDataLabels = true;
MySeries.Format.Fill.ForeColor.RGB = A + B * 256 + C * 256 * 256;
MySeries.Format.Line.ForeColor.RGB = A + B * 256 + C * 256 * 256;
MySeries.Format.Line.Weight = 1.5F;
MySeries.Format.Shadow.Style = MsoShadowStyle.msoShadowStyleOuterShadow;//控制阴影类型
MySeries.Format.Shadow.ForeColor.RGB = 0;//控制阴影颜色
MySeries.Format.Shadow.Transparency = 0.6F;//控制透明度
MySeries.Format.Shadow.Size = 100F;//控制大小
MySeries.Format.Shadow.Blur = 4F;//控制虚化
MySeries.Format.Shadow.OffsetX = 2.1F;//控制距离
MySeries.Format.Shadow.OffsetY = 2.1F;//与offsetX共同决定角度
//柱子距离
MyChartGroups = (Microsoft.Office.Interop.PowerPoint.ChartGroups)MyChart.ChartGroups();
MyChartGroups.Item(1).GapWidth = 50;
//数据标签
MyDataLabels = (Microsoft.Office.Interop.PowerPoint.DataLabels)MySeries.DataLabels();
MyDataLabels.Position = Microsoft.Office.Interop.PowerPoint.XlDataLabelPosition.xlLabelPositionOutsideEnd;
MyDataLabels.NumberFormat = "0.0%";
MyDataLabels.Format.TextFrame2.TextRange.Font.Size = 9F;
MyDataLabels.Format.TextFrame2.TextRange.Font.NameAscii = "Calibri";
MyDataLabels.Format.TextFrame2.TextRange.Font.Italic = MsoTriState.msoTrue;
==*****************************==
C# 创建幻灯片
//C# code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Core;
using PowerPoint=Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Interop.Graph;
using System.Runtime.InteropServices;
using System.IO; namespace Example {
public partial class Form1 : Form
{ public Form1()
{
InitializeComponent();
}
String MyTemplateFile = Directory.GetCurrentDirectory() + "\\Blends.pot"; //浏览图像文件
private void button1_Click(object sender, EventArgs e)
{
this.openFileDialog1.Filter="所有图像文件(JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg; *.gif;*.bmp;*.tif; *.tiff; *.png
JPeg 图像文件 (*.jpg;*.jpeg)|*.jpg;*.jpeg
GIF 图像文件(*.gif)|*.gif
BMP 图像文件(*.bmp)|*.bmp|Tiff 图像文件(*.tif;*.tiff)
*.tif; *.tiff|Png 图像文件(*.png)
*.png
所有文件 (*.*)|*.*";
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
string MyFileName=this.openFileDialog1.FileName;
this.pictureBox1.Image=Image.FromFile(MyFileName);
}
} //创建播放幻灯片
private void button2_Click(object sender, EventArgs e)
{
string MyFileName; PowerPoint.ApplicationClass MyApp;
PowerPoint.Presentations MyPresSet;
PowerPoint._Presentation MyPres;
PowerPoint.Slides MySlides;
PowerPoint._Slide MySlide;
PowerPoint.SlideShowTransition MySST;
PowerPoint.SlideShowSettings MySSS;
PowerPoint.SlideRange MySldRng;
PowerPoint.SlideShowWindows MySSWs;
bool MyAssistantOn;
int i, MyCount;
PowerPoint.TextRange MyTextRng;
Microsoft.Office.Interop.Graph.Chart MyChart;
PowerPoint.Shapes MyShapes;
PowerPoint.Shape MyShape;
try {
MyFileName = this.openFileDialog1.FileName;
if (!File.Exists(MyFileName))
{
MessageBox.Show("幻灯片模板文件实际不存在!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
MyApp = new PowerPoint.ApplicationClass();
MyApp.Visible = MsoTriState.msoCTrue;
MyPresSet = MyApp.Presentations;
MyPres = MyPresSet.Open(MyTemplateFile, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
MySlides = MyPres.Slides;
//创建幻灯片第一页
MySlide=MySlides.Add(1,PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
MyTextRng=MySlide.Shapes[1].TextFrame.TextRange;
MyTextRng.Text="125555555555555555555552111111";
MyTextRng.Font.Name="宋体";
MyTextRng.Font.Size=48;
MySlide.Shapes.AddPicture(MyFileName, MsoTriState.msoFalse,MsoTriState.msoTrue,150, 150, 500, 350);
//创建幻灯片第二页
MySlide=MySlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
MyTextRng=MySlide.Shapes[1].TextFrame.TextRange; MyTextRng.Text="演示绘制饼图";
MyTextRng.Font.Name="宋体";
MyTextRng.Font.Size= 48;
MyChart = (Microsoft.Office.Interop.Graph.Chart)MySlide.Shapes.AddOLEObject(150, 150, 480, 320, "MSGraph.Chart.8", "", MsoTriState.msoFalse, "", 0, "",
MsoTriState.msoFalse).OLEFormat.Object;
MyChart.ChartType = Microsoft.Office.Interop.Graph.XlChartType.xl3DPie;
MyChart.Legend.Position = Microsoft.Office.Interop.Graph.XlLegendPosition.xlLegendPositionBottom;
MyChart.HasTitle= true; MyChart.ChartTitle.Text="经典系列丛书2006年度图书销量";
//创建幻灯片第三页
MySlide=MySlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank);
MySlide.FollowMasterBackground=MsoTriState.msoFalse;
MyShapes=MySlide.Shapes;
MyShape=MyShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect29,"经典编程实例集锦", "Impact", 80,MsoTriState.msoFalse, MsoTriState.msoFalse, 50, 200);
//创建幻灯片第四页
MySlide=MySlides.Add(4, PowerPoint.PpSlideLayout.ppLayoutBlank);
MySlide.FollowMasterBackground=MsoTriState.msoFalse;
MyShapes=MySlide.Shapes;
MyShape=MyShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect30,"精彩编程实例集锦","Impact", 60,MsoTriState.msoFalse, MsoTriState.msoFalse, 150, 10);
MyShape=MyShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect29,"罗斌编著", "Impact", 80, MsoTriState.msoFalse, MsoTriState.msoFalse, 350, 250);
//创建幻灯片第五页
MySlide=MySlides.Add(5, PowerPoint.PpSlideLayout.ppLayoutBlank);
MySlide.FollowMasterBackground=MsoTriState.msoFalse;
MyShapes=MySlide.Shapes;
MyShape=MyShapes.AddTextEffect(MsoPresetTextEffect.msoTextEffect27,"The End", "Impact", 96, MsoTriState.msoFalse, MsoTriState.msoFalse, 230, 200);
MyCount=(int)MySlides.Count; int[] MySlideIdx=new int[MyCount];
for (i = 0; i < MyCount; i++)
{
MySlideIdx[i]=i+1;
}
MySldRng = MySlides.Range(MySlideIdx);
MySST=MySldRng.SlideShowTransition;
MySST.AdvanceOnTime=MsoTriState.msoTrue;
MySST.AdvanceTime=1;
MySST.EntryEffect=PowerPoint.PpEntryEffect.ppEffectBoxOut;
MyAssistantOn=MyApp.Assistant.On;
MyApp.Assistant.On=false;
MySSS= MyPres.SlideShowSettings;
MySSS.StartingSlide=1;
MySSS.EndingSlide=1;
MySSS.Run();
MySSWs= MyApp.SlideShowWindows;
while (MySSWs.Count >= 1)
{
System.Threading.Thread.Sleep(2000);
}
if (MyAssistantOn)
{
MyApp.Assistant.On = true;
MyApp.Assistant.Visible = false;
}
MyPres.Close();
MyApp.Quit();
}
catch (Exception MyEx)
{
MessageBox.Show(MyEx.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
C#操作PowerPoint的基本代码
包括打开ppt文件、读取幻灯页,插入幻灯片,自动播放等
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OFFICECORE = Microsoft.Office.Core;
using POWERPOINT = Microsoft.Office.Interop.PowerPoint;
using System.Windows;
using System.Collections;
using System.Windows.Controls;
namespace PPTDraw.PPTOperate
{
/// <summary>
/// PPT文档操作实现类.
/// </summary>
public class OperatePPT
{
#region=========基本的参数信息=======
POWERPOINT.Application objApp = null;
POWERPOINT.Presentation objPresSet = null;
POWERPOINT.SlideShowWindows objSSWs;
POWERPOINT.SlideShowTransition objSST;
POWERPOINT.SlideShowSettings objSSS;
POWERPOINT.SlideRange objSldRng;
bool bAssistantOn;
double pixperPoint = 0;
double offsetx = 0;
double offsety = 0;
#endregion
#region===========操作方法==============
/// <summary>
/// 打开PPT文档并播放显示。
/// </summary>
/// <param name="filePath">PPT文件路径</param>
public void PPTOpen(string filePath)
{
//防止连续打开多个PPT程序.
if (this.objApp != null) { return; }
try
{
objApp = new POWERPOINT.Application();
//以非只读方式打开,方便操作结束后保存.
objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
//Prevent Office Assistant from displaying alert messages:
bAssistantOn = objApp.Assistant.On;
objApp.Assistant.On = false;
objSSS = this.objPresSet.SlideShowSettings;
objSSS.Run();
}
catch (Exception ex)
{
this.objApp.Quit();
}
}
/// <summary>
/// 自动播放PPT文档.
/// </summary>
/// <param name="filePath">PPTy文件路径.</param>
/// <param name="playTime">翻页的时间间隔.【以秒为单位】</param>
public void PPTAuto(string filePath, int playTime)
{
//防止连续打开多个PPT程序.
if (this.objApp != null) { return; }
objApp = new POWERPOINT.Application();
objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoCTrue, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
// 自动播放的代码(开始)
int Slides = objPresSet.Slides.Count;
int[] SlideIdx = new int[Slides];
for (int i = 0; i < Slides; i++) { SlideIdx[i] = i + 1; };
objSldRng = objPresSet.Slides.Range(SlideIdx);
objSST = objSldRng.SlideShowTransition;
//设置翻页的时间.
objSST.AdvanceOnTime = OFFICECORE.MsoTriState.msoCTrue;
objSST.AdvanceTime = playTime;
//翻页时的特效!
objSST.EntryEffect = POWERPOINT.PpEntryEffect.ppEffectCircleOut;
//Prevent Office Assistant from displaying alert messages:
bAssistantOn = objApp.Assistant.On;
objApp.Assistant.On = false;
//Run the Slide show from slides 1 thru 3.
objSSS = objPresSet.SlideShowSettings;
objSSS.StartingSlide = 1;
objSSS.EndingSlide = Slides;
objSSS.Run();
//Wait for the slide show to end.
objSSWs = objApp.SlideShowWindows;
while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(playTime * 100);
this.objPresSet.Close();
this.objApp.Quit();
}
/// <summary>
/// PPT下一页。
/// </summary>
public void NextSlide()
{
if (this.objApp != null)
this.objPresSet.SlideShowWindow.View.Next();
}
/// <summary>
/// PPT上一页。
/// </summary>
public void PreviousSlide()
{
if (this.objApp != null)
this.objPresSet.SlideShowWindow.View.Previous();
}
/// <summary>
/// 对当前的PPT页面进行图片插入操作。
/// </summary>
/// <param name="alImage">图片对象信息数组</param>
/// <param name="offsetx">插入图片距离左边长度</param>
/// <param name="pixperPoint">距离比例值</param>
/// <returns>是否添加成功!</returns>
public bool InsertToSlide(List<PPTOBJ> listObj)
{
bool InsertSlide = false;
if (this.objPresSet != null)
{
this.SlideParams();
int slipeint = objPresSet.SlideShowWindow.View.CurrentShowPosition;
foreach (PPTOBJ myobj in listObj)
{
objPresSet.Slides[slipeint].Shapes.AddPicture(
myobj.Path,
//图片路径
OFFICECORE.MsoTriState.msoFalse,
OFFICECORE.MsoTriState.msoTrue,
(float)((myobj.X - this.offsetx) / this.pixperPoint),
//插入图片距离左边长度
(float)(myobj.Y / this.pixperPoint),
//插入图片距离顶部高度
(float)(myobj.Width / this.pixperPoint),
//插入图片的宽度
(float)(myobj.Height / this.pixperPoint)
//插入图片的高度
);
}
InsertSlide = true;
}
return InsertSlide;
}
/// <summary>
/// 计算InkCanvas画板上的偏移参数,与PPT上显示图片的参数。
/// 用于PPT加载图片时使用
/// </summary>
private void SlideParams()
{
double slideWidth = this.objPresSet.PageSetup.SlideWidth;
double slideHeight = this.objPresSet.PageSetup.SlideHeight;
double inkCanWidth = SystemParameters.PrimaryScreenWidth;//inkCan.ActualWidth;
double inkCanHeight = SystemParameters.PrimaryScreenHeight;//inkCan.ActualHeight ;
if ((slideWidth / slideHeight) > (inkCanWidth / inkCanHeight))
{
this.pixperPoint = inkCanHeight / slideHeight;
this.offsetx = 0;
this.offsety = (inkCanHeight - slideHeight * this.pixperPoint) / 2;
}
else
{
this.pixperPoint = inkCanHeight / slideHeight;
this.offsety = 0;
this.offsetx = (inkCanWidth - slideWidth * this.pixperPoint) / 2;
}
}
/// <summary>
/// 关闭PPT文档。
/// </summary>
public void PPTClose()
{
//装备PPT程序。
if (this.objPresSet != null)
{
//判断是否退出程序,可以不使用。
//objSSWs = objApp.SlideShowWindows;
//if (objSSWs.Count >= 1)
//{
if (MessageBox.Show("是否保存修改的笔迹!", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
this.objPresSet.Save();
//}
//this.objPresSet.Close();
}
if (this.objApp != null)
this.objApp.Quit();
GC.Collect();
}
#endregion
}
}
==************************=========

我要回帖

更多关于 ppt不需要的文本框怎么删除 的文章

 

随机推荐