如何将.MSG打印成PDF

时间:2011-03-07 18:53:56

标签: .net pdf printing outlook msg

我有1000封电子邮件(.msg格式),我想将它们转换为PDF文件。
已经询问了.MSG文件here

但对我来说问题是打印.msg电子邮件,就像你从“文件 - >打印”那样打印。

是否有简单的方法将.msg电子邮件打印为PDF?

3 个答案:

答案 0 :(得分:1)

如果您希望使用编程语言实现解决方案而不是手动打印每条消息,则可以考虑使用Aspose.Network和Aspose.Words for .NET组件。他们共同努力将MSG文件转换为PDF。

  1. 用于加载MSG并保存为MHTML格式的Aspose.Network for .NET
  2. 用于加载MHTML并生成PDF或任何其他支持格式的Aspose.Words for .NET
  3. 查看this page的示例代码。它将MSG改为TIFF,但您可以稍微修改并提供任何支持的格式,包括PDF,DOC,DOCX等。

答案 1 :(得分:0)

    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

答案 2 :(得分:-1)

您可以使用MsgViewer Pro等应用程序。

它具有“从命令行打印”功能,您可以在批处理模式下使用它。

注意:我没有使用此查看器,但我认为这可能是一个很好的建议。