Конвертируйте файл. xlsx или. docx в. pdf
Дорогие мои, я веб-разработчик, использующий MVC, я хочу конвертировать файлы, которые я уже загрузил, он отлично работает на моем локальном компьютере, но когда я публикую решение на сервере, оно не работает и не выдает никаких ошибок..
это мой код
Что я уже пробовал:
public jsonResult Convertfiletopdf(string filename , string filePatgh) { try { filePatgh = Path.Combine(Server.MapPath("~/Uploads/")); if (filename.Contains(".xlsx")) { var newfilename = filename.Replace(".xlsx", ".pdf"); var app = new Application(); var wkb = app.Workbooks.Open(filePatgh + filename); if (!System.IO.File.Exists(filePatgh + newfilename)) { wkb.ExportAsFixedFormat( XlFixedFormatType.xlTypePDF, filePatgh + newfilename, XlFixedFormatQuality.xlQualityStandard, true, true, 1, 10, false); } wkb.Close(); } if (filename.Contains(".xls")) { var newfilename = filename.Replace(".xls", ".pdf"); var app = new Application(); var wkb = app.Workbooks.Open(filePatgh + filename); if (!System.IO.File.Exists(filePatgh + newfilename)) { wkb.ExportAsFixedFormat( XlFixedFormatType.xlTypePDF, filePatgh + newfilename, XlFixedFormatQuality.xlQualityStandard, true, true, 1, 10, false); // wkb.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, filePatgh + newfilename); } wkb.Close(); } else { var objWorPdf = new Word2Pdf(); var fromLocation = filePatgh + "\\" + filename; var fileExtension = Path.GetExtension(filename); var changeExtension = filename.Replace(fileExtension, ".pdf"); object toLocation = filePatgh + "\\" + changeExtension; objWorPdf.InputLocation = fromLocation; objWorPdf.OutputLocation = toLocation; if (!System.IO.File.Exists(filePatgh + changeExtension)) { objWorPdf.Word2PdfCOnversion(); } } return Json(filename, JsonRequestBehavior.AllowGet); } catch (Exception ex) { throw ; } }
NathanRO
Вы проверили, что Microsoft Excel и Word установлены на сервере?
Manas Bhardwaj
Нет. Это не очень хорошая идея. MS Office - это клиентское приложение.
Eman2020
да он установлен
Richard Deeming
Вы должны прочитать следующую статью базы знаний Microsoft:
Соображения по автоматизации работы офиса на стороне сервера[^]
В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или взаимоблокировку при запуске Office в этой среде.
В дополнение к установке Office на сервер, есть несколько обручей, через которые вам придется перепрыгнуть, чтобы иметь хоть какой-то шанс заставить ваш код работать. И даже если ты делать заставьте его работать, нет никакой гарантии, что он не перестанет работать в какой-то случайный момент в будущем.
Member 12444785
Эта ссылка может помочь: Конвертируйте и объединяйте файлы Office в один PDF файл на языке C#