Как распечатать .MSG в PDF - PullRequest
2 голосов
/ 07 марта 2011

У меня 1000 писем (в формате .msg), и я хотел бы преобразовать их в PDF-файлы.Чтение .MSG файла уже было задано здесь .

Но проблема для меня заключается в том, чтобы напечатать .msg электронные письма, как вы это из "Файл -> Печать".

Есть ли простой способ печатать .msg электронные письма в PDF?

Ответы [ 3 ]

1 голос
/ 21 апреля 2011

Если вам нужно решение, реализованное на языке программирования вместо ручной печати каждого сообщения, вы можете рассмотреть возможность использования компонентов Aspose.Network и Aspose.Words для .NET. Они работают вместе, чтобы преобразовать файл MSG в PDF.

  1. Aspose.Network для .NET для загрузки MSG и сохранения в формате MHTML
  2. Aspose.Words для .NET для загрузки MHTML и создания PDF или любого другого поддерживаемого формата

Посмотрите пример кода на этой странице . Это делает MSG для TIFF, но вы можете немного изменить и указать любой поддерживаемый формат, включая PDF, DOC, DOCX и т. Д.

0 голосов
/ 18 октября 2013
    Dim objItem, objFSO, strFile, input, fileExt, strHtml, strPdf, msg,    wordDoc, wordApp, tempFileFolder

    Const olFormatHTML = 5
    Const wdFormatPDF = 17


    input = Wscript.Arguments(0)

    ' Create a File System object
    Set objFSO = CreateObject( "Scripting.FileSystemObject" )

     ' Check if the Word document exists
    If objFSO.FileExists(input) Then
        Set objItem = objFSO.GetFile(input)
        strFile = objItem.Path  
    Else
        WScript.Echo "FILE OPEN ERROR: The file does not exist" & vbCrLf
        WScript.Quit
    End If

    fileExt = Right(strFile,3)

    If fileExt <> "msg" Then
        WScript.Echo "FILE ERROR: The file extension is not .msg" & vbCrLf
        WScript.Quit
    End If

    strHtml = objItem.Path + ".html"
    strPdf = objItem.Path + ".pdf"

    Set Outlook = CreateObject("Outlook.Application")
    Set msg = Outlook.CreateItemFromTemplate(objItem.Path) 
    msg.SaveAs strHtml, olFormatHTML
    Outlook.Quit

    Set wordApp = CreateObject( "Word.Application" )    
    wordApp.Documents.Open strHtml
    Set wordDoc = wordApp.ActiveDocument
    wordDoc.SaveAs strPdf, wdFormatPDF
    wordDoc.Close
    wordApp.Quit


    If objFSO.FileExists(strHtml) Then
        objFSO.DeleteFile(strHtml)
    End If

    tempFileFolder = objItem.Path & "_files"
    If objFSO.FolderExists(tempFileFolder) Then
        objFSO.DeleteFolder(tempFileFolder)
    End If
0 голосов
/ 24 марта 2011

Вы можете использовать приложение типа MsgViewer Pro .

Он имеет функцию «печать из командной строки», которую вы, вероятно, могли бы использовать в пакетном режиме.

Примечание: я не использовал этот просмотрщик, но подумал, что это может быть хорошим предложением.

...