DynamicPDF Generator如何创建兼容PDF/A规范的PDF文件

作者:控件中国网   出处:控件中国网   2015-12-01 14:38:14   阅读:4

PDF/A是传统PDF格式规范的一个子集,专门用于需要长期保存的PDF文档,PDF/A规范的宗旨是定义了一个独立的、与设备无关的PDF文档。并且使用PDF/A规范创建的PDF文档在将来相当长点的时间范围内也是可读、可显示和存取的,DynamicPDF支持下面的PDF/A级别:
  • PDF/A-1a
  • PDF/A-1b
  • PDF/A-2a
  • PDF/A-2b
  • PDF/A-2u
  • PDF/A-3a
  • PDF/A-3b
  • PDF/A-3u
下面是创建PDF/A规范时必须要使用到的和不能使用到的规则和规范:
  • 所有字体必须被嵌入(核心字体不能使用)
  • 所有颜色必须与设备无关
  • 必须包含XMP元数据
  • 不能使用加密
  • 可以使用Text, Combo Box, List Box and Signature Form Fields
  • 使用OpenType font with postscript outline的表单字段不兼容PDF/A
  • 图片不能使用LZW压缩
  • 没有嵌入的文件可以被添加
  • 不能引用额外的内容
  • 不能使用多媒体内容
  • 不能使用JavaScript
下面的代码阐释了如何使用DynamicPDF Generator For .NET来创建兼容PDF/A规范的PDF文档:
Document document = new Document();
document.Title = "PDF/A1 Document";
document.Subject = "Document's Subject";
document.Tag = new TagOptions();
document.Author = "MyAuthor";
XmpMetadata xmp = new XmpMetadata();
 
// User has to add PDF/A schema with the conformance level.
PdfASchema pdfaschema = new PdfASchema(PdfAStandard.PDF_A_1a_2005);
xmp.AddSchema(pdfaschema);
 
DublinCoreSchema dc = xmp.DublinCore;
dc.Title.DefaultText = document.Title;
dc.Description.DefaultText = document.Subject;
dc.Creators.Add(document.Author);
dc.Title.AddLang("en-us", "PDF/A1 Document");
document.XmpMetadata = xmp;
 
// Needs iccprofile file to be embedded.
IccProfile iccProfile = new IccProfile(@"C:\Temp\IccProfile\sRGB_IEC61966-2-1_noBPC.icc");
OutputIntent outputIntents = new OutputIntent("", "IEC 61966-2.1 Default RGB colour space - sRGB 1 ", "http://www.color.org", 
 
"sRGB IEC61966-2.1 1", iccProfile);
outputIntents.Version = OutputIntentVersion.PDF_A;
document.OutputIntents.Add(outputIntents);
 
string text = "Hello World...\nFrom DynamicPDF Generator for .NET\nDynamicPDF.com";
OpenTypeFont openTypeFont = new OpenTypeFont("times.ttf");
Label label = new Label(text, 0, 0, 504, 100, openTypeFont, 18, TextAlign.Center, RgbColor.BlueViolet);
 
Page page = new Page(PageSize.Letter, PageOrientation.Portrait, 54.0f);
page.Elements.Add(label);
document.Pages.Add(page);
document.Draw(@"C:/MyDocument.pdf");
Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat