我有一个Excel模板,用于为我们的供应商创建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
无法与图像一起使用,无论它们如何插入到文档中。有替代方案吗?
答案 0 :(得分:2)
微软要感谢这一点。在多台计算机上使用多种文件格式和PDF文件工具进行墙壁测试时,我或多或少地开了6个小时,我发现这是Excel 2010的兼容性问题。
我终于得到了一台备用笔记本电脑,所以我可以停止窃听其他人在他们的电脑上测试东西,笔记本电脑上有Excel 2007,它就像一个魅力。不管你信不信,实际的问题是,当使用Excel 2007(模板最初构建的版本)时,有人将其放入“页面布局”视图中,该视图在创建时使用Excel 2007及更早版本。带有图片的PDF文件。
使用Excel 2010,它有时会让我放弃页面布局视图,但绝不会使用图片。我希望我能弥补它。我不认为该视图与电子表格的功能有任何关系。这是一个非常具体的问题,但希望总有一天能让人头疼。
答案 1 :(得分:0)
是的。你是对的。我也遇到了这个问题。我过去曾使用MS Excel 2007创建过一个MS Excel模板,但我仍在使用它。但是,当我考虑使用同一模板(之前我已手动更新)自动生成报告并将图像插入到工作表时,它从未显示在(MS Excel 2016的打印预览)中。我曾尝试将excel报告保存为PDF,但图像也未显示在PDF中。
最后,我不得不在MS Excel 2016中重新创建模板,然后问题得以解决。简而言之,这是MS Excel中的兼容性错误,Microsoft仍未修复。
无论如何,谢谢你!