DocProperties.cs
// 完毕:
using System;
using System.IO;
using System.IO.Compression;
using System.Drawing;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;

namespace DsPdfWeb.Demos
{
    // 展示如何设置各种文档属性,例如 PDF 版本、文档信息和元数据。
    public class DocProperties
    {
        public int CreatePDF(Stream stream)
        {
            // 创建一个新的 PDF 文档:
            var doc = new GcPdfDocument();
            // 通常情况下,写入文档的 PDF 版本是自动确定的
            // (作为本文档中实际使用的功能所需的最小版本),
            // 可以显式设置:
            doc.PdfVersion = "1.7";
            // 默认情况下,GcPdfDocument 使用 CompressionLevel.Fastest 来减小文件大小。
            // 将级别设置为 CompressionLevel.NoCompression 将生成未压缩的 PDF:
            doc.CompressionLevel = CompressionLevel.NoCompression;
            // 默认情况下,字体子集仅包含文档中使用的字形,
            // 被嵌入。可以将其更改为嵌入整个字体(这可能会导致
            // 巨大的文件大小)或者不像我们在这里所做的那样嵌入字体(嵌入也可以
            // 使用 GcPdfDocument.Fonts 集合控制单个字体):
            doc.FontEmbedMode = FontEmbedMode.NotEmbed;
            // 可以在 GcPdfDocument.DocumentInfo 上设置标题、作者等文档属性,
            // 但需要注意的是,可以在 GcPdfDocument.Metadata 中设置类似的属性
            // 在大多数 PDF 阅读器中,元数据中设置的属性(见下文)优先。
            // 这里我们设置了 DocumentInfo 中可用的一些属性:
            doc.DocumentInfo.Title = "GcDocs.PDF 文档信息示例";
            doc.DocumentInfo.Author = "杰米·史密斯";
            doc.DocumentInfo.Subject = "GcPdfDocument.DocumentInfo";
            doc.DocumentInfo.Producer = "DsPdfWeb 制作者";
            doc.DocumentInfo.Creator = "DsPdfWeb 创建器";
            // 为了示例,将 CreationDate 设置为 10 年后的日期:
            doc.DocumentInfo.CreationDate = Common.Util.TimeNow().AddYears(10);
            // 文档元数据可通过 GcPdfDocument.Metadata 属性获得。
            // 它提供了许多预定义的访问器,例如:
            doc.Metadata.Contributors.Add("贡献者 1");
            doc.Metadata.Contributors.Add("贡献者2");
            doc.Metadata.Contributors.Add("贡献者3");
            doc.Metadata.Copyright = "葡萄城软件有限公司。";
            doc.Metadata.Creators.Add("创造者1");
            doc.Metadata.Creators.Add("创造者2");
            doc.Metadata.Creators.Add("创造者3");
            doc.Metadata.Description = "示例文档说明";
            doc.Metadata.Keywords.Add("关键词1");
            doc.Metadata.Keywords.Add("关键词2");
            doc.Metadata.Keywords.Add("关键词3");
            doc.Metadata.Source = "来源:DsPdfWeb";
            // 还可以使用 AddProperty 方法添加任意元数据:
            doc.Metadata.AddProperty("http://purl.org/dc/elements/1.1/", "language", "英语");
            // 最后,向文档添加页面和一些文本并保存:
            Common.Util.AddNote("GcDocs.PDF 文档属性示例", doc.NewPage());
            // 完毕:
            doc.Save(stream);
            return doc.Pages.Count;
        }
    }
}