CorelDRAW VBA - 发布(导出)PDF文档

公告


本专栏的相关的文章已不在简书同步更新,请直接访问 VBA探秘 官方网站或关注微信公众号获取最新文章动态。

coreldraw-vba-publish-pdf

目的

这篇教程将教会你使用 CorelDRAW VBA代码来将文档发布(导出)为PDF文档并进行文档设置的方法。

如何发布PDF

将文档发布为PDF,只需要两个步骤:
第一步,设置PDF属性(如果采用默认PDF设置,那么这一步可以省略)。
第二步,导出到文件。

创建文档

创建一个新文档,创建至少5个页面,每个页面可以适当添加些内容。

无对话框导出

你可以使用 Document.PDFSettings 属性来定义文档的PDF相关设置。这个设置其实是一个类型为 PDFVBASettings 的对象,该对象包含了所有能够通过PDF导出对话框设置的属性。也就是说,通过直接设置这个对象的值,就可以实现无对话框导出。

注意:要导出的目标路径如果有多层目录,则该目录必须存在,如果不存在应该调用目录创建函数 MkDir。这个函数也只能创建单层目录,无法创建多个不存在的目录。要一次性创建多个不存在的目录,可以考虑使用 FileSystemObject 运行时模块,本文不做介绍。

下面的VBA代码将导出当前文档第2~3页、第5页dd为一个名称为 MyPDF.pdf 的PDF文件:

' 获取当前文档
Dim doc As Document
Set doc = ActiveDocument

' 设置文档PDF属性
With doc.PDFSettings
    .Author = "Zebe" ' 作者
    .Bookmarks = True ' 是否生成书签 
    .ColorMode = pdfRGB ' 颜色模式
    .ComplexFillsAsBitmaps = False ' 将复杂填充作为图像
    .CompressText = True ' 是否压缩文本
    .DownsampleGray = True
    .EmbedBaseFonts = True ' 嵌入基础字体
    .EmbedFonts = True ' 嵌入字体
    .Hyperlinks = True ' 是否生成超级链接
    .Keywords = "PDF, Corel, CorelDRAW, 导出PDF, 发布PDF"
    .Linearize = True
    .PageRange = "2-3, 5" ' 页面范围
    .pdfVersion = pdfVersion13 ' PDF版本
    .PublishRange = pdfPageRange ' 发布范围
    .TrueTypeToType1 = True ' TrueType字体转换
End With

' 导出到本地磁盘(目标文件夹必须存在,否则运行会异常)
doc.PublishToPDF "D:\temp\data\MyPDF.pdf"
MsgBox "导出PDF成功!"

有对话框导出

下面的VBA代码可以显示一个导出对话框,提供给用户更灵活的设置。

' 获取当前文档
Dim doc As Document
Set doc = ActiveDocument

' 判断是否设置了显示对话框,如果是则调用默认设置进行导出
If doc.PDFSettings.ShowDialog = True Then
    doc.PublishToPDF "D:\temp\data\MyPDF2.pdf"
    MsgBox "导出PDF成功!"
End If

原创声明:本文首发于个人CorelDRAW VBA博客,请尊重文章版权。
转载请注明原文链接:http://www.cdrvba.com/coreldraw-vba-publish-pdf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,965评论 6 49
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,253评论 19 139
  • 对于大多数年轻人来说,25岁是人生的第一个重要的分叉路口,是褪去幼稚直面社会的第一年。曾经的浑浑噩噩亦或是骄...
    职优易阅读 524评论 0 0
  • 《研究生慢性疾病》2017.10.16晚上课程 180 夜行人 简书作者 2017.10.16 23:24 打开A...
    夜行人的书阅读 1,270评论 0 2
  • 孩子说谎大多不含恶意,有的可能是因为自我保护意识,害怕被责罚,或为了赢得大人的注意、分不明白现实与幻想等因素,才会...
    慧润阶梯应聪花0125阅读 503评论 0 0