Создание PDF-файла из Excel: проблема с изображениями

У меня есть шаблон 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 не работает с изображениями, как бы они ни вставлялись в документ. Есть ли этому альтернатива?


person Nick    schedule 01.06.2011    source источник
comment
Рассматривали ли вы вариант использования драйвера принтера PDF для печати в целевой файл?   -  person    schedule 01.06.2011
comment
@Inuyasha Спасибо за сообщение, но да, я тоже пробовал это, но он все равно появляется. Этот документ нельзя открыть, потому что в нем нет страниц, когда в нем есть изображение   -  person Nick    schedule 01.06.2011


Ответы (2)


Microsoft должна поблагодарить за это. 6 часов более или менее ударов головой о стену, тестирование на нескольких компьютерах с несколькими форматами файлов и инструментами для работы с файлами PDF. Я обнаружил, что это проблема совместимости с Excel 2010.

Наконец-то я получил запасной ноутбук, чтобы я мог перестать приставать к другим людям, чтобы те тестировали что-то на их ПК, и на ноутбуке был Excel 2007, и он работал как шарм. Фактическая проблема, хотите верьте, хотите нет, заключается в том, что при работе с Excel 2007 (версия, в которую изначально был встроен шаблон) кто-то поместил его в представление «Макет страницы», которое работало в Excel 2007 и более ранних версиях при создании PDF-файл с изображением в нем.

В Excel 2010 это иногда позволяет мне отказаться от просмотра макета страницы, но не с изображениями. Хотел бы я это выдумывать. Я не думал, что представление действительно имеет какое-либо отношение к функциональности электронной таблицы. Это очень специфическая проблема, но, надеюсь, когда-нибудь она избавит кого-то от головной боли.

person Nick    schedule 01.06.2011

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

Это правда. Ты прав. Я тоже столкнулся с этой проблемой. У меня был шаблон MS Excel, созданный с помощью MS Excel 2007, но я все еще использовал его. Однако, когда я подумал автоматизировать создание отчета с использованием того же шаблона (который я раньше обновлял вручную) и вставил изображение в лист, оно так и не появилось в предварительном просмотре печати (в MS Excel 2016). Я попытался сохранить отчет Excel в PDF, но изображение также не было показано в PDF.

Наконец, мне пришлось заново создать шаблон в MS Excel 2016, и проблема была решена. Короче говоря, это была ошибка совместимости в MS Excel, которая до сих пор не исправлена ​​Microsoft.

В любом случае, спасибо тебе!

person Salman Sarfraz    schedule 16.09.2020