我將openxml sdk 2.5與Eric White的電動工具結合使用。我已經設法使用模板文件創建動態pptx演示文稿。 (在C#中) 不幸的是縮略圖在這個過程中丟失了。
有沒有什麼辦法(重新)使用openxml或電動工具創建pptx文件的縮略圖?
我成功地編寫了一些代碼,用圖像改變現有的縮略圖。但是,如果沒有縮略圖,它會給我一個System.NullReferenceException。下面是代碼:以編程方式更改/添加pptx powerpoint的縮略圖。使用Openxml sdk?
using OpenXmlPowerTools;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DocumentFormat.OpenXml.Packaging;
namespace ConsoleApplication1
{
class AddThumbnail_
{
public static void ReplaceThumbnail(ThumbnailPart thumbnailPart, string newThumbnail)
{
using (
FileStream imgStream = new FileStream(newThumbnail, FileMode.Open, FileAccess.Read))
{
thumbnailPart.FeedData(imgStream);
}
}
static void Main(string[] args)
{
var templatePresentation = "Modified.pptx";
var outputPresentation = "Modified.pptx";
var baPresentation = File.ReadAllBytes(templatePresentation);
var pmlMainPresentation = new PmlDocument("Main.pptx", baPresentation);
OpenXmlMemoryStreamDocument streamDoc = new OpenXmlMemoryStreamDocument(pmlMainPresentation);
PresentationDocument document = streamDoc.GetPresentationDocument();
var thumbNailPart = document.ThumbnailPart;
ReplaceThumbnail(thumbNailPart, @"C:\Path\to\image\image.jpg");
document.SaveAs(outputPresentation);
}
}
}
編輯: 我意識到這個問題以前(How to generate thumbnail image for a PPTX file in C#?)有人問,答案是「保存演示文稿時啓用預覽截圖」,但是這將意味着我不得不打開每個pptx並手動設置此標誌。我很感激C#解決方案。
預先感謝您!