gpt4 book ai didi

c# - 使用c#提取excel中嵌入的 ‘pdf’文件并将其保存到文件夹中

转载 作者:行者123 更新时间:2023-11-30 22:36:09 25 4
gpt4 key购买 nike

我正在使用 C#.net 2.0、Office 2010 和 Visual Studio 2005。

我有一个 excel 文件,其中嵌入了 .pdf.doc 文件。
我可以使用以下代码读取并保存 .doc 文件:

if (inlineShape.OLEFormat.progID.StartsWith("word.document."))
{
inlineShape.OLEFormat.Activate();
Word.Document document = inlineShape.OLEFormat.Object as Word.Document;
FileInfo wfi = new FileInfo(fileName);
object wfileName = (object)(explodedDirectory + wfi.Name + "." + docCount.ToString() + ".doc");
object fileFormat = Word.WdSaveFormat.wdFormatDocument;
document.SaveAs(ref wfileName, ref fileFormat, ref _missing, ref _missing,
ref _missing, ref _missing, ref _missing, ref _missing, ref _missing,
ref _missing, ref _missing, ref _missing, ref _missing, ref _missing,
ref _missing, ref _missing);
document.Close(ref saveChanges, ref originalFormat, ref routeChanges);
document = null;
}

但是我不能对 .pdf 做任何事情。

我需要提取 .pdf 文件并将其保存到一个文件夹中,在此先感谢。

最佳答案

您用于 Word 文档的代码假设了解嵌入的 OLE 对象的内容,并使用 Word 本身来保存文档。由于 MS Office 中没有 native PDF 编辑器,因此没有简单的方法可以对 PDF 执行相同的操作,正如@Shadow Wizard 的链接所指出的那样。

仍然有很多方法可以获取数据;例如,如果您使用较新的 .xslx 格式(相对于 .xls 格式),事情就容易得多(或者至少更明显)。 .xslx 文件实际上是一个 Office Open XML文件,你可以使用类似 Open XML SDK 的东西操纵它。

另一种方法是尝试从 .xslx 文件中提取文件 - 这可以很容易地完成,因为它本质上只是一个 .zip 文件。要手动解决这个问题,请将您的 .xlsx 文件重命名为 .zip 并解压缩。在里面,你会发现一个像“xl”这样的文件夹,里面有“embeddings”。您的 PDF 文档将在此处,不幸的是被编码为 OLE 对象。然后你可以尝试从中获取数据,一个例子是 here .

很遗憾,我对这里的细节了解不够,否则我会给出更直接的答案。希望这会有所帮助。

关于c# - 使用c#提取excel中嵌入的 ‘pdf’文件并将其保存到文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com