Piszę program w którym edytuje pliki pdf, program ma przyjmować rozszerzenia pdf, docx, oraz msg, w przypadku pdf od razu wykonywać operacje, w przypadku docx czy msg najpierw konwertować je na pdf, napisanie konwersji z docx na pdf poszło gładko i wygląda u mnie tak:
Microsoft.Office.Interop.Word.Document wordDoc { get; set; }
void doc_to_pdf()
{
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
wordDoc = app.Documents.Open(openFD.FileName);
wordDoc.ExportAsFixedFormat(to_pdf(openFD.FileName), Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);
wordDoc.Close(Microsoft.Office.Interop.Word.WdSaveOptions.wdSaveChanges);
app.Quit();
Marshal.ReleaseComObject(wordDoc);
Marshal.ReleaseComObject(app);
openFD.FileName = to_pdf(openFD.FileName);
}
openFD.filename to ścieżka pliku, a funkcja to_pdf() zapisuje przekonwertowany plik docx w tym samym miejscu gdzie byl i zamiast docx na koncu wpisuje pdf.
Analogicznie jak w przypadku docx chciałem zrobić konwersje plików msg, jednak nie działa to już tak przyjemnie
Chciałem to zrobić mniej więcej tak:
Microsoft.Office.Interop.Outlook.MailItem outMsg { get; set; }
void msg_to_pdf()
{
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
outMsg = app.Documents.Open(openFD.FileName);
outMsg.ExportAsFixedFormat(to_pdf(openFD.FileName), Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);
outMsg.Close(Microsoft.Office.Interop.Outlook.WdSaveOptions.wdSaveChanges);
openFD.FileName = to_pdf(openFD.FileName);
}
Próbowałem oczywiście odwoływać się do przeróżnych argumentów, różnych funkcji, tworzyć klasy innych obiektów niż MailItem, wszystko wg. tego co podpowiada mi visual studio, jednak nic, próbowałem też używać metod z dokumentacji bibliotek Office'a ze strony microsoftu, ale po raz kolejny nic, jestem juz strasznie zdesperowany, jest ktoś kto może mi powiedzieć jak to zrobić?