• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Konwersja mail'i outlook na pdf

0 głosów
796 wizyt
pytanie zadane 3 sierpnia 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)

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ć?

1 odpowiedź

–1 głos
odpowiedź 3 sierpnia 2017 przez piotrsz109 Stary wyjadacz (13,730 p.)
komentarz 3 sierpnia 2017 przez krystian.k.nowak Użytkownik (500 p.)
edycja 4 sierpnia 2017 przez krystian.k.nowak
Czyli tworzyłem obiekt złej klasy. Tylko w takim razie obiekt jakiej innej klasy tworzyć? Tak żeby miał metody open() i export(), czy coś w ten deseń, przeglądałem dokumentacje biblioteki, próbowałem wielu klas, wielu argumentów, wielu metod dla tych argumentów ale ciężko, jakieś rady?

 

Edit. Do niczego mnie to nie doprowadziło, zrobiłem tak że pobieram wszystkie elementy z maila a potem na ich podstawie tworze pdf, otrzymałem chciany efekt.

Podobne pytania

0 głosów
1 odpowiedź 1,525 wizyt
pytanie zadane 19 lipca 2017 w C# przez Krystian Nowak Początkujący (330 p.)
0 głosów
2 odpowiedzi 338 wizyt
pytanie zadane 20 lipca 2017 w C# przez krystian.k.nowak Użytkownik (500 p.)
0 głosów
1 odpowiedź 772 wizyt

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...