C# 从Excel创建PDF文件:图像问题

C# 从Excel创建PDF文件:图像问题,c#,image,export-to-pdf,C#,Image,Export To Pdf,我有一个模板,我用它为我们的供应商创建PDF规范表。除了插入图片外,我可以很好地打开、操作并导出为PDF文件。这是我用来添加一张图片的代码 workSheet.Shapes.AddPicture(imagePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 120, 700, image.Width, image.Height); 这是保存PDF文件的代码:

我有一个模板,我用它为我们的供应商创建PDF规范表。除了插入图片外,我可以很好地打开、操作并导出为PDF文件。这是我用来添加一张图片的代码

workSheet.Shapes.AddPicture(imagePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 120, 700, image.Width, image.Height);
这是保存PDF文件的代码:

private void createPDF()
{
     if (File.Exists(path + basePart.Number + ".pdf"))
         File.Delete(path + basePart.Number + ".pdf");
     workBook.Saved = true;
     workSheet.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, path + basePart.Number, Excel.XlFixedFormatQuality.xlQualityStandard, true,
                false, Type.Missing, Type.Missing, true, Type.Missing);
     DisposeExcelInstance();
}
没有任何图像的PDF文件保存良好。对于图像,PDF文件将保存但无法打开。为了以防万一,我尝试了多个PDF文件阅读器,但毫无疑问,它们都不起作用

编辑:


我尝试过各种Excel格式,但都没有成功。似乎
ExportAsFixedFormat
无法处理图像,无论图像如何插入到文档中。是否有其他选择?

微软对此表示感谢。在使用多种文件格式和PDF文件工具的多台计算机上测试6个小时后,我发现这是与Excel 2010的兼容性问题

我终于得到了一台备用的笔记本电脑,这样我就可以不再打扰别人在他们的电脑上测试东西了,而且笔记本电脑上有Excel2007,它工作起来很有魅力。信不信由你,实际的问题是,在使用Excel 2007(模板最初内置的版本)时,有人将其放入“页面布局”视图中,该视图在创建包含图片的PDF文件时适用于Excel 2007及更早版本

使用Excel2010,我有时可以不使用页面布局视图,但不能使用图片。我希望我是在编故事。我认为这个视图和电子表格的功能并没有任何关系。这是一个非常具体的问题,但希望有一天它能让人省去头痛

没错。你是对的。我也遇到了这个问题。过去,我使用MS Excel 2007创建了一个MS Excel模板,但我仍在使用它。然而,当我想到使用相同的模板(我之前手动更新过)自动生成报告并将图像插入工作表时,它从未出现在打印预览(MS Excel 2016)中。我尝试将excel报告保存为PDF,但图像也没有显示在PDF中

最后,我不得不在MS Excel 2016中重新创建模板,然后问题得到解决。简言之,这是微软Excel中的一个兼容性缺陷,微软至今仍未修复


无论如何,谢谢你

您是否考虑过使用PDF打印机驱动程序并将其“打印”到您的目标文件?@Inuyasha感谢您的帖子,但是的,我也尝试过,但当文档中有图像时,仍然会出现“此文档无法打开,因为它没有页面”