GVKun编程网logo

powerpoint组织结构图怎么做(ppt组织结构图怎么弄)

11

对于想了解powerpoint组织结构图怎么做的读者,本文将是一篇不可错过的文章,我们将详细介绍ppt组织结构图怎么弄,并且为您提供关于PowerPointInterop:如何检测用户何时关闭Powe

对于想了解powerpoint组织结构图怎么做的读者,本文将是一篇不可错过的文章,我们将详细介绍ppt组织结构图怎么弄,并且为您提供关于PowerPoint Interop:如何检测用户何时关闭PowerPoint而又不保存更改?、PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?、powerpoint-利用PHPPowerpoint下载ppt时,设置的字体、powerpoint中怎么做三线表教程的有价值信息。

本文目录一览:

powerpoint组织结构图怎么做(ppt组织结构图怎么弄)

powerpoint组织结构图怎么做(ppt组织结构图怎么弄)

powerpoint组织结构图怎么做 ppt制作组织结构图的教程如何在ppt中做组织架构图呢?一份好的PPT不仅可以吸引观众的眼球同时还可以反映自己的制作能力,那么大家知道怎么说机构图吗?下面小编就为你提供ppt怎么做组织架构图的方法啦,希望小编整理的资料对大家有帮助。

  ppt做组织架构图的方法

  打开需要插入组织结构图的PPT,然后在最上方的菜单栏上点击“插入”,然后点击下方工具栏上的“SmartArt”。

powerpoint组织结构图怎么做 ppt制作组织结构图的教程

  在弹出的“选择SmartArt图形”窗口上,选择“层次结构”,再用鼠标左键点击最左上方的那个图标即可插入组织结构图了。

  根据需要在各个框中输入相应的信息。

  如果需要录入更多的同级组织结构,那么可以点击鼠标右键选中任意文本框,在弹出的快捷菜单中,选择“添加形状à在后面添加形状或者在前面添加形状”。

  如果需要在某文本框上方新加组织结构,那么可以用鼠标右键选中该文本框,然后在弹出的快捷菜单中,选择“添加形状à在上方添加形状或者在下方添加形状”。

PowerPoint Interop:如何检测用户何时关闭PowerPoint而又不保存更改?

PowerPoint Interop:如何检测用户何时关闭PowerPoint而又不保存更改?

如何解决PowerPoint Interop:如何检测用户何时关闭PowerPoint而又不保存更改??

我有一个WPF应用程序,可将PowerPoint文件存储在sql Server数据库中。该应用程序具有一个编辑按钮,可以打开给定的PowerPoint文件进行编辑。由于PowerPoint是基于文件的应用程序,因此我必须使用临时文件来加载和保存PowerPoint。

为此目的我编写的帮助程序类具有绑定到编辑按钮的IsEnabled属性的属性;我们在编辑过程中禁用该按钮。编辑过程中,有一个ManualResetEvent会在此帮助程序类中挂起Edit方法。我钩上Presentation.Saved事件以检测用户何时将更改保存到PowerPoint中。不用说,这都是精心策划的。

在测试过程中,我们发现,如果用户在不保存更改的情况下关闭PowerPoint,然后对随后出现的“您希望保存更改”对话框回答“是”,则Presentation.Saved不会触发直到Presentation.CloseFinal事件已经执行之后,对我们而言,对此做任何事情都为时已晚。 Presentation.CloseFinal是我们从磁盘检索保存的文件并将其存储到数据库的地方。如果用户单击PowerPoint中的“保存”按钮,则会立即触发Presentation.Saved

为了解决该问题,我钩住了PresentationClose事件并编写了以下代码。

// Detects when the user closes the PowerPoint after changes have been made.
private void Application_PresentationClose(Presentation presentation)
{
    // If the user has edited the presentation before closing PowerPoint,// this event fires twice.  The first time it fires,presentationSaved
    // is msoFalse.  That''s how we kNow the user has edited the PowerPoint.
    if (presentation.Saved == MsoTriState.msoFalse)
        IsDirty = true;
}

然后我检查IsDirty中的Presentation.CloseFinal属性,并将PowerPoint保存到数据库(如果将其设置为true)。

不幸的是,出现了无法预料的皱纹;似乎没有可靠的方法来确定用户是否放弃了更改。第二次触发此事件时,无论用户对“保存更改吗?”的回答如何,Presentation.Saved属性始终设置为MsoTriState.msoTrue。对话框。

如果用户放弃了所做的更改,PowerPoint Interop中是否有一种方法可以避免承担将未更改的文件保存到数据库的费用?


作为参考,以下是整个帮助器类:

using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Xps.Packaging;
using PropertyChanged;  // PropertyChanged.Fody 

namespace Helpers
{
    /// <summary>
    /// Helper class for PowerPoint file handling
    /// </summary>
    [AddINotifyPropertyChangedInterface]
    public sealed class PowerPointApplication : Idisposable
    {
        private Application _application;
        private Presentation _presentation;
        private string _tempFolder;
        private string _pptPath;
        private string _extension;

        /// <summary>
        /// Used to block the Edit method until the PowerPoint presentation is closed.
        /// </summary>
        private ManualResetEvent manualResetEvent = new ManualResetEvent(false);

        public byte[] PptData { get; private set; }
        public byte[] PptxData { get; private set; }
        public byte[] JpgData { get; private set; }

        /// <summary>
        /// Indicates whether any instance of PowerPointApplication is in an edit state.
        /// Used to disable Edit PowerPoint buttons.
        /// </summary>
        public static bool IsEditing { get; private set; }

        /// <summary>
        /// Indicates if the PowerPoint file has been saved after changes were made to it.
        /// </summary>
        public bool IsSaved { get; set; }

        /// <summary>
        /// Indicates if the PowerPoint file has been changed but not saved.
        /// </summary>
        public bool IsDirty { get; set; }

        public PowerPointApplication()
        {
            _tempFolder = Path.GetTempPath();

            if (!Directory.Exists(_tempFolder))
                Directory.CreateDirectory(_tempFolder);

            _application = new Application();
            _application.PresentationSave += Application_PresentationSave;
            _application.PresentationClose += Application_PresentationClose;
            _application.PresentationCloseFinal += Application_PresentationCloseFinal;
        }

        // Detects when the user presses the "Save" button in PowerPoint
        private void Application_PresentationSave(Presentation presentation)
        {
            IsSaved = true;
        }

        // Detects when the user closes the PowerPoint after changes have been made.
        private void Application_PresentationClose(Presentation presentation)
        {
            // If the user has edited the presentation before closing PowerPoint,presentationSaved
            // is msoFalse.  That''s how we kNow the user has edited the PowerPoint.
            // It fires again after the users has responded to the "save changes?" dialog.
            if (presentation.Saved == MsoTriState.msoFalse)
                IsDirty = true;
        }

        private void Application_PresentationCloseFinal(Presentation presentation)
        {
            if ((IsDirty || IsSaved) && File.Exists(_pptPath))
            {
                var data = File.ReadAllBytes(_pptPath);

                if (_extension == "pptx")
                {
                    PptxData = data;
                    PptData = GetPpt(presentation);
                }
                else
                {
                    PptData = data;
                    PptxData = GetPptx(presentation);
                }
                JpgData = GetJpg(presentation);

                IsSaved = true;
                IsDirty = false;
            }
            manualResetEvent.Set();
            IsEditing = false;

            Task.Run(() => DeleteFileDelayed(_pptPath));
        }

        /// <summary>
        /// Waits for PowerPoint to close,and then makes a best effort to delete the temp file.
        /// </summary>
        private static void DeleteFileDelayed(string path)
        {
            if (path == null) return;
            var file = new FileInfo(path);

            Thread.Sleep(5000);
            try
            {
                file.Delete();
            }
            catch { }
        }

        /// <summary>
        /// Opens the provided PowerPoint byte array in PowerPoint and displays it.
        /// </summary>
        public void Edit(byte[] data,string ext = "xml")
        {
            _extension = ext;
            _pptPath = GetTempFile(_extension);

            if (data == null)
            {
                // Open a blank presentation and establish a save path.
                _presentation = _application.Presentations.Add(MsoTriState.msoTrue);
                _presentation.SaveAs(_pptPath,PpSaveAsFileType.ppSaveAsXMLPresentation);
                IsSaved = false;
            }
            else
            {
                // Save the data to a file and open it.
                File.WriteallBytes(_pptPath,data);
                _presentation = _application.Presentations.Open(_pptPath);
                IsEditing = true;
            }

            // Make sure IsEnabled state of WPF buttons is properly set.
            ApplicationHelper.DoEvents();
            Thread.Sleep(100);
            ApplicationHelper.DoEvents();

            // Wait for PowerPoint to exit.
            manualResetEvent.WaitOne();
        }

        /// <summary>
        /// Opens the provided PowerPoint byte array in PowerPoint without displaying it.
        /// </summary>
        public void Open(byte[] data,string ext = "xml")
        {
            _extension = ext;
            _pptPath = GetTempFile(ext);
            File.WriteallBytes(_pptPath,data);
            _presentation = _application.Presentations.Open(_pptPath,WithWindow: MsoTriState.msoFalse);
            IsEditing = true;
        }

        public void Close()
        {
            _presentation.Close();
        }

        public byte[] GetJpg() { return GetJpg(_presentation); }
        /// <summary>
        /// Returns a byte array containing a JPEG image of the first slide in the PowerPoint.
        /// </summary>
        public byte[] GetJpg(Presentation presentation)
        {
            presentation.SavecopyAs(_tempFolder,PpSaveAsFileType.ppSaveAsJPG,MsoTriState.msoFalse);
            byte[] result = File.ReadAllBytes(Path.Combine(_tempFolder,"Slide1.jpg"));
            File.Delete(Path.Combine(_tempFolder,"Slide1.jpg"));
            return result;
        }

        public byte[] GetPptx() { return GetPptx(_presentation); }

        public byte[] GetPptx(Presentation presentation)
        {
            var path = Path.ChangeExtension(_pptPath,"pptx");
            presentation.SavecopyAs(path,PpSaveAsFileType.ppSaveAsOpenXMLPresentation,MsoTriState.msoFalse);
            byte[] result = File.ReadAllBytes(path);
            return result;
        }

        public byte[] GetPpt(Presentation presentation)
        {
            var path = Path.ChangeExtension(_pptPath,"ppt");
            presentation.SavecopyAs(path,PpSaveAsFileType.ppSaveAsPresentation,MsoTriState.msoFalse);
            byte[] result = File.ReadAllBytes(path);
            return result;
        }

        /// <summary>
        /// Returns an XPS document of the presentation.
        /// </summary>
        public XpsDocument ToXps(string pptFilename,string xpsFilename)
        {
            var presentation = _application.Presentations.Open(pptFilename,MsoTriState.msoTrue,MsoTriState.msoFalse,MsoTriState.msoFalse);
            presentation.ExportAsFixedFormat(xpsFilename,PpFixedFormatType.ppFixedFormatTypeXPS);
            return new XpsDocument(xpsFilename,FileAccess.Read);
        }

        /// <summary>
        /// Returns a path to a temporary working file having the specified extension.
        /// </summary>
        private string GetTempFile(string extension)
        {
            return Path.Combine(_tempFolder,Guid.NewGuid() + "." + extension);
        }

        #region Idisposable implementation
        public void dispose()
        {
            _application.PresentationSave -= Application_PresentationSave;
            _application.PresentationClose -= Application_PresentationClose;
            _application.PresentationCloseFinal -= Application_PresentationCloseFinal;

            IsEditing = false;
        }
        #endregion
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

OSC 请你来轰趴啦!1028 苏州源创会,一起寻宝 AI 时代

转:

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

欢迎观看 Microsoft PowerPoint 中文版教程,小编带大家学习 PowerPoint 的使用技巧,了解如何在 PowerPoint 中打印幻灯片、讲义或备注。

在 PowerPoint 中,可以打印幻灯片、演讲者备注,以及为受众创建讲义。

「大纲」仅打印幻灯片中的文本,不打印图像。演示文稿的「备注」会显示幻灯片及其下方相关演讲者备注。如果选择打印讲义,可使用各种版式在一页上打印多张幻灯片,有的可留出空间做笔记。

打印幻灯片,在「文件」菜单上选择「打印...」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

在对话框的底部选择「显示详细信息」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

在「版式」框中,选择「幻灯片」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

如果打印含演讲者备注的幻灯片,在「版式」框中,选择「注释」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

如果打印大纲,在「版式」框中,选择「大纲」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

设置其他所需打印选项,然后选择「打印」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

打印讲义或不带幻灯片编号,在「版式」框中,选择「讲义」选项之一,具体取决于每页所需幻灯片张数。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

默认情况下,打印的讲义包括每张幻灯片图像下方的幻灯片编号,在「打印」对话框中选择「页眉 / 页脚...」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

在打开的「页眉 / 页脚」面板中选择「备注和讲义」,取消勾选「页码」,单击「全部应用」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

选择「打印」。

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?

以上就是在 Microsoft PowerPoint 中打印幻灯片、讲义或备注的方法。

软件下载地址:Microsoft PowerPoint 2019 for Mac (ppt 2019) 中文版

windows 软件安装地址:PowerPoint 2019

转:

PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?


--Posted from Rpc

powerpoint-利用PHPPowerpoint下载ppt时,设置的字体

powerpoint-利用PHPPowerpoint下载ppt时,设置的字体

powerpointphp字体

利用phppowerpoint下载ppt时,设置的字体只对字母和数字生效,对中文失效,一直都是默认字体arial

powerpoint中怎么做三线表教程

powerpoint中怎么做三线表教程

powerpoint中怎么做三线表教程 ppt制作三线表格的方法图解三线表看起来简单明了,又突破了普通表格死板,拘束的原则,很受很多朋友的欢迎,但是还有部分朋友不知道怎样在PPT中制作三线表,如何在ppt做三线表?下面给大家分享ppt做三线表的方法吧。

  ppt制作三线表的方法

  1. 新建一个PPT文档,单击菜单栏“插入”——表格——选择行列。

  2.把光标移动到表格左边框外面出现十字箭头时双击,在菜单栏“设计”中选择一种底纹。

  3.在菜单栏“设计”中在“边框”下拉选项中选择“无边框”。

  4.在菜单栏“设计”中在“边框”下拉选项中选择“上框线”。

  5. 在菜单栏“设计”中在“边框”下拉选项中选择“下框线”。

powerpoint中怎么做三线表教程 ppt制作三线表格的方法图解

  6. 选择第一行表格,在“设计”中在“边框”下拉选项中选择“下框线”。

powerpoint中怎么做三线表教程 ppt制作三线表格的方法图解

  7. 现在就可以看到三线表了,如图所示。

powerpoint中怎么做三线表教程 ppt制作三线表格的方法图解

关于powerpoint组织结构图怎么做ppt组织结构图怎么弄的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于PowerPoint Interop:如何检测用户何时关闭PowerPoint而又不保存更改?、PowerPoint 教程,如何在 PowerPoint 中打印幻灯片、讲义或备注?、powerpoint-利用PHPPowerpoint下载ppt时,设置的字体、powerpoint中怎么做三线表教程等相关内容,可以在本站寻找。

本文标签: