저는 Eric White의 전동 공구와 함께 openxml sdk 2.5를 사용합니다. 템플릿 파일을 사용하여 동적 pptx 프레젠테이션을 만들었습니다. (In C#) 불행하게도 미리보기 이미지가 손실됩니다.
openxml 또는 전동 공구를 사용하여 pptx 파일의 축소판을 (다시) 만들 수있는 방법이 있습니까?
이미지와 함께 기존 축소판을 변경하는 코드를 작성했습니다. 그러나 썸네일이 없을 때는 System.NullReferenceException을 제공합니다. 여기 코드는 다음과 같습니다프로그래밍 방식으로 pptx 파워 포인트의 축소판을 변경/추가하십시오. 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# 솔루션을 고맙게 생각합니다.
미리 감사드립니다.