[返回博客](/cn/blog) # 控制导出 .pdf 文件的大小

Sergey Sherstnev 一月 30, 2018 [\#pdf](/cn/blog/tag/pdf) [\#export](/cn/blog/tag/export) [\#getting started](/cn/blog/tag/getting-started)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

ODA 成员有时会问，为什么导出的 .pdf 文件大小如此之大。有时这些问题需要调查和修复，但有时原因仅仅是所选参数，这些参数会显著增加生成的 .pdf 文件的大小。在本文中，我们将探讨这些参数，并就如何减小导出的 .pdf 文件大小提出建议。

#### 文本导出标志：

- **kTTFTextAsGeometry** 和 **kSHXTextAsGeometry** 负责将图纸中的文本导出为 .pdf 的方式：作为文本或作为一组几何图元。这些标志对文件大小的影响取决于图纸中的文本量、不同字体的数量以及其他参数，例如 .pdf 的矢量分辨率。
- **kEmbededTTF**（如果未设置 kTTFTextAsGeometry 则可设置）控制是否将整个字体文件嵌入到 .pdf 文件中。它大大提高了 .pdf 的可移植性，但显然会增加文件大小。为了减小文件大小，可以使用 kEmbededOptimizedTTF 标志。此标志会删除嵌入字体中未使用的部分，从而使文件大小更小，但未来对该 .pdf 的编辑将受到限制。
- **SearchableTextType**（如果也设置了 kTTFTextAsGeometry 或 kSHXTextAsGeometry 则可设置）将带有文本的注释添加到 .pdf 中，这提供了当文本作为几何图形导出时搜索文本的能力。此选项会增加 .pdf 的大小。

#### 压缩设置：

- **kFlateCompression** 使用zip算法压缩.pdf的内容。它显著减小了.pdf文件的大小。我们建议始终使用此标志。
- **kASCIIHexEncoding** 将内容转换为ASCIIHex序列，这实际上使.pdf文件大小增加了一倍。有些人认为这种转换使.pdf看起来更好，但如果您关心文件大小，我们不建议使用此选项。
- **DCTCompression** (setDCTCompression(bool bEnable)) 如果.pdf中有图像，则使用JPEG算法压缩图像。它显著减小了.pdf文件的大小，我们建议始终使用此标志。
- **DCTQuality** (setDCTQuality(OdUInt16 quality)) 将JPEG压缩质量设置为百分比（10到100）。质量越好，.pdf文件越大。

#### 分辨率设置：

- **VectorResolution** (setGeomDPI(OdUInt16 dpi)) 用于几何图形，colorImagesDPI (setColorImagesDPI(OdUInt16 dpi)) 和 bwImagesDPI (setBWImagesDPI(OdUInt16 dpi)) 用于彩色和黑白图像，以及 hatchDPI (setHatchDPI(OdUInt16 dpi)) 用于作为位图图像导出的填充图案。这些都很简单：分辨率越大，.pdf文件看起来越好（尤其是在缩放时），但.pdf文件大小也越大。

#### 填充图案设置：

- 填充图案导出类型（**ExportHatchesType** 参数）为不同类型的填充图案提供了不同的导出类型。这些在本博客中之前已详细描述，但总的来说，为了减小.pdf文件大小，我们建议对实心填充图案使用 kPdfPaths，对渐变填充图案使用 kBitmap，对其他填充图案使用 kVectorizer。

#### 其他标志和参数，代表特定功能：

- **PDF\_A\_mode** (setArchived(PDF\_A\_mode mode)) 生成 PDF/A 文件（之前已在本博客中描述）。这会显著增加 .pdf 文件的大小，因此需要在较小的 .pdf 文件与长期存档文档之间进行选择。
- **kLinearized** 生成线性化的 .pdf 文件。这也会稍微增加 .pdf 文件的大小，但能提供更快的互联网浏览速度。
- **kMeasuring** 通过向 .pdf 文件添加辅助信息（之前已在本博客中描述）来稍微增加 .pdf 文件的大小。kExportHyperlinks 标志（如果绘图中包含链接）也一样。
- **kEnableLayers、kIncludeOffLayers** 和 **kMergeLines** 也会通过添加可选图形内容来增加文件大小，以提供 .pdf 图层功能和线条交叉的局部透明度，因此如果这些选项不重要，可以将其关闭以减小 .pdf 文件的大小。
- **CropImages** (setImageCropping(bool bEnable)) 裁剪图像中未使用的部分，因此可以显著减小 .pdf 文件的大小。例如，有时从绘图导出的图像在 .pdf 文件中显示时，只有部分图像可见（部分图像放置在页面外部或特定视口外部）。此选项默认启用，我们强烈建议保持此设置。
- **kSimpleGeomOptimization** 在导出包含大量几何图形的大型绘图时，会简化大量几何图形，尤其是在使用中等/小纸张尺寸或中等/小分辨率时。例如，我们可以使用圆形或椭圆形，它在 .pdf 文件中显示时就像一个点或一条线。即使放大到最大，它也不会再次变成圆形。这意味着此类实体可以作为单个点或线导出到 .pdf 文件中，并且质量不会受到影响。在某些情况下，此选项可以将 .pdf 文件大小减小数十倍，因此建议几乎总是使用它。此标志的唯一副作用是导出时间增加，因为优化需要额外的时间。

## 今天就开始行动

**免费试用 ODA 软件 60 天。  
无风险，无需信用卡。**

[免费试用](https://www.opendesign.com/cn/free-trial)
