将 Outlook 电子邮件导出或打印为 PDF

2024-01-12

我使用 PowerShell 循环遍历 Outlook 中的指定文件夹,并将附件保存在树状结构中。这很神奇,但现在管理层要求将电子邮件本身也保存为 PDF。我找到了PrintOut对象中的方法,但会提示输入文件名。我无法弄清楚要传递给它什么才能让它自动保存到特定的文件名。我查看了 MSDN 页面,对于我目前的水平来说有点高了。

我正在使用 Outlook.application 的 com 对象。

除了将所有电子邮件保存到临时文件并使用第三方方法之外,是否有参数可以传递给 PrintOut?或者另一种方法来完成这个任务?

这是获取电子邮件的代码的基础。我循环遍历 $Emails

$Outlook = New-Object -comobject outlook.application
$Connection = $Outlook.GetNamespace("MAPI")
#Prompt which folder to process
$Folder = $Connection.PickFolder()
$Outlook_Folder_Path = ($Folder.FullFolderPath).Split("\",4)[3]
$BaseFolder += $Outlook_Folder_Path + "\"
$Emails = $Folder.Items

看起来没有内置方法,但如果您愿意使用第三方二进制文件,wkhtml转pdf https://wkhtmltopdf.org/可以使用。

  1. Get 预编译的二进制文件 https://wkhtmltopdf.org/downloads.html(使用 MinGW 32 位以获得最大兼容性)。
  2. 使用 7Zip 安装或解压安装程序并复制wkhtmltopdf.exe到您的脚本目录。它没有外部依赖项,可以与您的脚本一起重新分发,因此您不必在所有 PC 上安装 PDF 打印机。
  3. Use HTMLBody https://msdn.microsoft.com/en-us/library/office/ff868941.aspx的财产MailItem脚本中用于 PDF 转换的对象。

这是一个例子:

# Get path to wkhtmltopdf.exe
$ExePath = Join-Path -Path (
    Split-Path -Path $Script:MyInvocation.MyCommand.Path
) -ChildPath 'wkhtmltopdf.exe'

# Set PDF path
$OutFile = Join-Path -Path 'c:\path\to\emails' -ChildPath ($Email.Subject + '.pdf')

# Convert HTML string to PDF file
$ret = $Email.HTMLBody | & $ExePath @('--quiet', '-', $OutFile) 2>&1

# Check for errors
if ($LASTEXITCODE) {
    Write-Error $ret
}

请注意,我没有使用 Outlook 的经验,并且使用 MSDN 来获取对象的相关属性,因此代码可能需要一些调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Outlook 电子邮件导出或打印为 PDF 的相关文章

  • Get-AzureStorageBlob 抛出找不到您的 azure 存储凭据

    我刚刚开始使用 Azure 在使用 PowerShell cmdlet 处理我的存储帐户时遇到问题 我已经创建了一个存储帐户并在该存储帐户中创建了一个容器 接下来 我安装了 Azure Powershell SDK 和命令让等 并导入了pu
  • System.IO.FileInfo 的“目标”成员记录在哪里?

    PowerShell 命令行开关Get Item 如果应用于文件 则返回System IO FileInfo type PS C gt item get item c windows System32 atl dll PS C gt ite
  • PDFcropbox中的坐标指的是什么尺寸?

    例如 如果一个 pdf 指定了错误的页面大小 则可以使用以下命令裁剪掉文档中不需要的部分 鬼脚本 questions tagged ghostscript和命令参数 CropBox 我的问题是 命令中的数字指的是什么 我知道它们是点单位 一
  • 从 Windows 命令行打印 PDF

    我正在尝试打印当前目录中的所有 pdf 文件 当我在 cmd 中调用这个 bash 脚本时 singlepdf sh C Program Files x86 Adobe Reader 10 0 Reader AcroRd32 exe t G
  • 如何使用卸载路径卸载 MSI

    我正在尝试获取一组应用程序的卸载路径并卸载它们 到目前为止 我得到了卸载路径列表 但我很难真正卸载这些程序 到目前为止我的代码是 app msi1 msi2 msi3 msi4 Regpath HKLM Software Microsoft
  • 我可以使用 iTextSharp 从现有 PDF 中删除文本对象并输出到新 PDF 吗?

    这个问题是我的旧问题的另一个版本 我想使用 iTextSharp 从 PDF 获取除文本对象之外的所有对象作为图像 https stackoverflow com questions 54003886 i want to get all o
  • PDFTron。 FreeText 注释字体

    我需要从以下位置获取字体信息 字体系列 颜色等 FreeText在 Net 中使用 PDFTron 进行注释 而我只看到FreeText GetFontSize方法 如何获取字体信息FreeText注解 如果存在外观流 则使用 E leme
  • 脚本块上的新闭包

    考虑这段代码 PS gt timer New Object Timers Timer PS gt timer Interval 1000 PS gt i 1 PS gt Register ObjectEvent timer Elapsed
  • 是否可以在 PowerShell 中使 IndexOf 不区分大小写?

    我在终端服务器中由查询会话命令组成的数组中搜索索引时遇到问题 这是有问题的脚本 Array of logged users in terminal servers a Get RDUsersession CollectionName BLA
  • 无法从 PDFA1-a 格式文档中提取图像

    我正在使用以下代码从 PDFA1 a 格式的 pdf 中提取图像 但我无法获取图像 List
  • 此插件导致 Outlook 启动缓慢

    我正在使用 C NET 4 5 开发 Outlook Addin 项目 但部署后 有时 Outlook 会禁用我的插件 并显示此消息 这个插件导致 Outlook 启动缓慢 我不知道我的插件出了什么问题 这只有很少的代码 并且ThisAdd
  • 在 PowerShell 中显示当前时间和时区

    我正在尝试使用时区显示系统上的当地时间 如何在任何系统上以最简单的方式显示这种格式的时间 时间 美国东部时间上午 8 00 34 我目前正在使用以下脚本 localtz System TimeZoneInfo Local Select Ob
  • 无法使用 Powershell 2.0 压缩文件

    Q1 我尝试了几种压缩方法 但在我的机器上都不起作用 我只能使用外部压缩工具 7z exe 来压缩文件 但我没有权限在 serverA 中安装 7z exe 文件 也没有权限将 powershell 更新到 v5 目前使用powershel
  • 如何使用 PDFMiner 获取 PDF 中文本的位置? [复制]

    这个问题在这里已经有答案了 PDFMiner 的文档说 PDFMiner 允许获取页面中文本的确切位置 但是 我一直无法找到如何做到这一点 PDFMiner 的 文档 相当稀疏 所以我不明白如何做到这一点 您正在寻找bbox每个布局对象上的
  • 强制 Excel 将多张纸作为单个作业打印

    在某些 Excel 2003 工作簿中 当我尝试print如果有多个工作表 Excel 将这些工作表视为单独的打印作业 这让我一直在编写的 Excel 自动化应用程序感到困惑 因为它会导致 Adob e PDF Printer 停止并询问用
  • 使用 init.ps1 和 nuget 将文件复制到解决方案文件夹

    我在使用 nuget 包的 init ps1 中的 ps 脚本时遇到问题 我试图在安装包时创建一个解决方案文件夹 然后将 dll pdbs 复制到此文件夹 并删除项目中包安装的源 dll pdbs 我能够创建解决方案文件夹 但将文件从 co
  • 从请求响应创建 PDF 不适用于 axios,但适用于本机 xhr

    为了强制从服务器下载 PDF 我尝试使用 axios 和本机 xhr 对象 原因是我必须发送post请求 因为我向服务器传递了太多数据 所以带有简单链接的选项 例如site ru download pdf对我不起作用 尽管我最终设法用 Xh
  • 如何在 iOS 上反转使用 CoreGraphics 渲染的 pdf 上的文本颜色?

    我正在使用开源 PDF 查看库 VFR PDF Readerhttps github com vfr Reader https github com vfr Reader 我正在尝试实现 夜间模式 或黑色背景与白色文本 我可以将背景设置为我
  • 如何设置文件的LastWriteTime属性?

    我想更改使用此脚本生成的文件的创建日期 clientname Read Host Enter the client name path Read Host Enter the complete path of bak files time
  • 如何在服务器(无 GUI)上呈现网页以进行打印?

    我正在尝试使用 PHP 脚本将页面实用地打印到办公室打印机 这是我到目前为止所得到的 我在服务器上安装了一台打印机 我可以通过命令行的打印命令使用 PHP 向其发送作业 我还可以使用 PHP 脚本编写纯文本文件 然后将它们添加到打印提示中

随机推荐