PDFFormat

摘要

PDFFormat 对象表示便携文档格式 (PDF) 文件属性的集合,可以配置这些属性并将其与 LayoutMapFrameMapView 对象上的 export 方法一起使用,以创建输出 PDF 文件。

说明

PDF 文件可在不同的平台上实现一致的查看和打印效果。 它们常用于在 Web 上分发文档,并且此格式现在属于文档交换的 ISO 官方标准。 在许多图形应用程序中,PDF 可供编辑。 它们可以在文件中保留地图的地理配准信息、注记、标注和要素属性数据。 此外,也可以对整个文档或单独的图层进行栅格化以简化文档,从而缩小文件。

如果 format 参数设置为 PDF,则可以使用 createExportFormat 方法创建 PDFFormat 对象。 返回的 PDFFormat 对象包含与生成 PDF 文件相关的所有属性。 可以相应地修改这些属性以产生不同的输出结果。

属性

属性说明数据类型
clipToElements
(可读写)

如果设置为 True,则仅包含具有地图或布局元素内容的页面区域,而非导出整个页面。 此属性仅在导出 Layout 对象时适用。 默认值为 False

Boolean
compressVectorGraphics
(可读写)

压缩矢量内容流。 此选项应保持为 True,除非需要使用明文排除故障。 默认值为 True

Boolean
convertMarkers
(可读写)

对基于字体字符的标记符号是作为字体字符还是作为面导出进行控制。 当您由于许可或文件格式的限制而无法嵌入字体时,请将此选项设置为 True 以在尚未安装相应字体的计算机上查看输出。 这不适用于文本,仅适用于基于字体的标记符号。 默认值为 False

Boolean
embedColorProfile
(可读写)

将为地图或布局设置的颜色配置文件包含在导出的文件中。 在不同的设备上查看文件时,此举有助于建立颜色的一致性。 如果未嵌入配置文件,或者使用了非颜色管理的查看器,则颜色可能与屏幕上显示的颜色明显不同。 默认值为 True

注:

此选项仅在启用颜色管理时可用。 如果未启用颜色管理,并且颜色空间设置为 CMYK,则 CMYK 颜色空间仍包含在导出中。 查看导出的文件时,这可能会导致某些颜色出现不同的颜色。

Boolean
embedFonts
(可读写)

在导出的文件中包含可嵌入的字体,以在不同平台上保持字体的一致性。 将不会包含不支持嵌入的字体,无论此设置为何。 默认值为 True

注:

为了正确地将文本编辑为图形,Illustrator 要求安装字体并可以使用字体。 嵌入和共享字体前请检查共享权限。

Boolean
filePath
(可读写)

一个字符串,表示已导出文件的系统路径和文件名(包含扩展名)。

String
georefInfo
(可读写)

包含来自地图或者一个或多个地图框的地理空间信息。 如果包含此信息,则可以提取 x,y 坐标数据并在受支持的 PDF 阅读器中执行地理测量。 默认值为 True

Boolean
height
(可读写)

要导出的地图区域的高度(以像素为单位)。 此属性仅在导出 MapView 对象时适用。 默认值为 960

Double
imageCompression
(可读写)

在输出文件中压缩图像或栅格数据时使用的压缩方案。 请从以下选项中进行选择: 默认值为 ADAPTIVE

  • ADAPTIVE组合 JPEG 和 Deflate 压缩,具体取决于流的内容。 这在大多数情况下都有效。
  • DEFLATE适用于大多数情况的无损压缩方法。
  • JPEG一种有损压缩方法,适用于照相类型的图像。
  • JPEG2000一种较高质量的压缩,其中文件大小小于 JPEG。 如果将 jpeg_compression_quality 设置为 100,则为无损压缩。
  • LZW一种使用代码表的无损压缩方法。
  • NONE不应用压缩。
  • RLE游程编码压缩,一种无损压缩方法,如果存在大量相同颜色的区域,则效果很好。
String
imageCompressionQuality
(可读写)

应用于导出的图像压缩量。 低质量的文件较小,但数据的清晰度较低;而最高质量的文件较大,但数据的清晰度较高。 仅当使用某些压缩类型时,此选项才适用。 默认值为 80

Integer
imageQuality
(可读写)

图像重采样量。 该属性可用于确定输出时栅格内容的有效分辨率。 例如,如果 imageQuality 设置为 BETTER,重采样比率为 1:2,并且输出 resolution 设置为 300 dpi,则栅格内容将以大约 150 dpi 的分辨率输出。 许多情况下,您能够以低于矢量数据的 dpi 来包含栅格数据,而不会明显影响质量,从而减小输出文件的大小。 默认值为 BEST

  • BEST输出图像质量的重采样比为 1
  • BETTER输出图像质量的重采样比为 2
  • NORMAL输出图像质量的重采样比为 3
  • FASTER输出图像质量的重采样比为 4
  • FASTEST输出图像质量的重采样比为 5
String
includeAccessibilityTags
(可读写)

如果设置为 True,则会将标题、语言、主题、作者和关键字可访问性标签写入输出文件。 默认值为 True

Boolean
includeNonVisibleMapLayers
(可读写)

如果设置为 True,则此属性将确保地图中的所有图层均包含在导出文件中,包括未选中可见性的图层。 所有图层的可见性状态均将保留在导出文件中。 使用此选项可以创建具有相同数据的多个视图的交付项。 当此属性设置为 False 时,导出文件中将仅包括地图中的可见图层。 不可见图层将被丢弃。 默认值为 False

Boolean
layersAndAttributes
(可读写)

在地图或布局中包含可以在受支持的 PDF 阅读器中查看和管理的图层。 此外,可包括要素的属性数据。 包括大量图层的属性可能影响性能并增大输出的大小。 默认值为 LAYERS_ONLY

String
outputAsImage
(可读写)

将矢量内容导出为图像。 如果地图或布局包含具有高密度折点的矢量图层,则此选项可极大减小输出文件的大小。 默认值为 False

注:

outputAsImage 设置为 True 时,特定于矢量数据的选项(例如 embedFontsgeorefInfolayersAttributes)将不可用。

Boolean
removeLayoutBackground
(可读写)

导出时,将页面背景作为图形移除。 此属性仅在导出 Layout 对象时适用。 默认值为 False

Boolean
resolution
(可读写)

输出矢量数据的有效 dpi。 默认值为 96。

注:

当导出 MapView 时,将使用系统 dpi 缩放比例自动计算 dpi,因此将忽略该值。

Integer
showSelectionSymbology
(可读写)

将地图或地图框中的已选要素在输出文件中显示为选中状态。 将此值设置为 False 不会影响视图内的选择内容,只会影响输出文件中的选择内容。 默认值为 False

Boolean
simulateOverprint
(可读写)

模拟叠印(有时也称为软打样)用于表示在页面上打印时油墨重叠区域的显示方式。 您可以在符号或图形的符号图层中设置叠印。 默认值为 False

注:

在导出时模拟叠印时,矢量要素将栅格化为图像。 它们不会在输出 PDF 文档中保留为单独的矢量图层。 这将导致特定于矢量数据的选项(例如 embedFontsgeorefInfolayersAttributes)不可用。 了解有关叠印的详细信息

Boolean
width
(可读写)

要导出的地图区域的宽度(以像素为单位)。 此属性仅在导出 MapView 对象时适用。 默认值为 960

Double

方法概述

方法说明
setImageCompression (image_compression)

一个字符串常量,用于表示在输出文件中压缩图像或栅格数据时使用的压缩方案。

setImageQuality (image_quality)

一个字符串常量,用于设置图像重采样量。

setLayersAndAttributes (layers_attributes)

用于指定导出文件中是否将包含 PDF 图层和 PDF 对象数据(属性)的字符串常量。

方法

setImageCompression (image_compression)
参数说明数据类型
image_compression

Below is a list of valid strings.

  • ADAPTIVE JPEG and Deflate compression are combined, depending on the contents of the stream. This works well for most cases.
  • DEFLATE Lossless compression method that works well for most cases.
  • JPEG Lossy compression method that works well for photographic-type images.
  • JPEG2000 Higher-quality compression with file sizes smaller than JPEG . This compression is lossless if imageQuality is set to 100.
  • LZWLempel-Ziv-Welch, a lossless compression method using a code table.
  • NONECompression is not applied.
  • RLE Run-length encoded compression, a lossless compression method that works well if there are large areas of the same color.
String
setImageQuality (image_quality)
参数说明数据类型
image_quality

Below is a list of valid strings.

  • BESTAn output image quality resample ratio of 1
  • BETTERAn output image quality resample ratio of 2
  • NORMALAn output image quality resample ratio of 3
  • FASTERAn output image quality resample ratio of 4
  • FASTESTAn output image quality resample ratio of 5
String

该值可用于确定输出时栅格内容的有效分辨率。 例如,如果输出图像质量比率设置为 1:2,image_quality 值为 BETTER,并且输出分辨率设置为 300 dpi,则栅格内容将以大约 150 dpi 的分辨率输出。 许多情况下,您能够以低于矢量数据的 dpi 来包含栅格数据,而不会明显影响质量,从而减小输出文件的大小。

setLayersAndAttributes (layers_attributes)
参数说明数据类型
layers_attributes

Below is a list of valid strings.

  • LAYERS_AND_ATTRIBUTES Export PDF layers only
  • LAYERS_ONLY Export PDF layers and feature attributes
  • NONEDo not export any PDF information
String

当使用 LAYERs_ONLY 值时,输出文件大小会根据要素数量和折点密度而变大,如果导出 LAYERS_AND_ATTRIBUTES,输出文件大小会变得更大。

代码示例

PDFFormat 示例 1

以下脚本使用默认属性值将布局导出为 PDF 格式。

p = arcpy.mp.ArcGISProject('current')
lyt = p.listLayouts()[0]

pdf = arcpy.mp.CreateExportFormat('PDF', r'C:\Temp\Output.pdf')

lyt.export(pdf)
PDFFormat 示例 2

以下脚本可执行与上述示例相同的导出操作,但是它会配置 PDFFormat 属性以使用较小的文件大小创建 PDF。 在脚本第二次导出之前,它会修改原始输出 filePath,以便您比较新生成的 PDF 的文件大小。

p = arcpy.mp.ArcGISProject('current')
lyt = p.listLayouts()[0]

pdf = arcpy.mp.CreateExportFormat('PDF', r'C:\Temp\PDF_output1.pdf')
lyt.export(pdf)                            #Export using default value

pdf.clipToElements = True                  #Default is False
pdf.embedColorProfile = False              #Default is True
pdf.embedFonts = False                     #Default is True
pdf.georefInfo = False                     #Default is True
pdf.outputAsImage = True                   #Default is False
pdf.imageCompressionQuality = 10           #Default is 80
pdf.resolution = 50                        #Default is 96
pdf.setImageQuality('FASTEST')             #Default os BEST
pdf.setLayersAndAttributes('NONE')         #Default is LAYERS_ONLY
pdf.filePath = r'C:\Temp\PDF_output2.pdf'  #Override filePath from original

lyt.export(pdf)                            #Export to smaller PDF