【问题标题】:Create a PDF file from Excel: problem with images从 Excel 创建 PDF 文件:图像问题
【发布时间】:2011-06-01 13:08:33
【问题描述】:

我有一个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 不适用于图像,无论它们如何插入到文档中。有没有替代方案?

【问题讨论】:

  • 您是否考虑过使用 PDF 打印机驱动程序并“打印”到您的目标文件?

标签: c# image export-to-pdf


【解决方案1】:

微软要感谢这个。在具有多种文件格式和 PDF 文件工具的多台计算机上进行了 6 小时或多或少的碰壁测试,我发现这是与 Excel 2010 的兼容性问题。

我终于得到了一台备用笔记本电脑,这样我就可以停止让其他人在他们的 PC 上测试东西了,笔记本电脑上装有 Excel 2007,它的工作就像一个魅力。信不信由你,实际问题是,在使用 Excel 2007(最初内置模板的版本)时,有人将其放入“页面布局”视图中,该视图在 Excel 2007 及更早版本中创建带有图片的 PDF 文件。

使用 Excel 2010,它有时可以让我摆脱页面布局视图,但绝不会使用图片。我希望我在弥补。我认为视图与电子表格的功能没有任何关系。这是一个非常具体的问题,但希望有一天它可以让人们头疼。

【讨论】:

    【解决方案2】:

    https://stackoverflow.com/a/6207214/713819

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

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

    无论如何,谢谢你!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多