iText设置一致性级别

时间:2018-05-27 19:44:29

标签: c# itext itext7

目前我正在尝试使用iText for C#创建一致性级别为A-1a的PDF文件。这就是我到目前为止所做的:

var exportFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var exportFile = System.IO.Path.Combine(exportFolder, "Test.pdf");

var writer = new PdfWriter(exportFile);
var pdf = new PdfDocument(writer);
var document = new Document(pdf);
document.Add(new Paragraph("Hello World! Tom"));
document.Close();

我如何为此设置一致性级别?

修改

我在他们的文档中发现了这个: https://developers.itextpdf.com/content/itext-7-jump-start-tutorial-net/chapter-7-creating-pdfua-and-pdfa-documents

但我在第三行代码中没有得到替换INTENT的东西。 有人能够给我一个只有一行Hello World的完整示例。它不一定是iText。我愿意接受其他工具。

2 个答案:

答案 0 :(得分:3)

第1步:

下载颜色配置文件 您可以使用iText示例中提供的那个。 http://gitlab.itextsupport.com/itext7/samples/blob/develop/publications/jumpstart/src/main/resources/color/sRGB_CS_profile.icm

第2步:

//Initialize PDFA document with output intent
PdfADocument pdf = new PdfADocument(new PdfWriter(dest), PdfAConformanceLevel.PDF_A_1B, new PdfOutputIntent
            ("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream("sRGB_CS_profile.icm", FileMode.Open, FileAccess.Read
            )));

Document document = new Document(pdf);

//Fonts need to be embedded
PdfFont font = PdfFontFactory.CreateFont(FONT, PdfEncodings.WINANSI, true);
Paragraph p = new Paragraph();
p.SetFont(font);
p.Add(new Text("The quick brown "));

iText.Layout.Element.Image foxImage = new Image(ImageDataFactory.Create(FOX));    
p.Add(foxImage);

p.Add(" jumps over the lazy ");

iText.Layout.Element.Image dogImage = new iText.Layout.Element.Image(ImageDataFactory.Create(DOG));
p.Add(dogImage);

document.Add(p);
document.Close();

答案 1 :(得分:1)

尝试替换此行

var pdf = new PdfDocument(writer);

用这个

PdfADocument pdf = new PdfADocument(new PdfWriter(exportFile), PdfAConformanceLevel.PDF_A_1B, new PdfOutputIntent
("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", new FileStream(INTENT, FileMode.Open, FileAccess.Read
)));
Document document = new Document(pdf);
// Etc...

除此之外,我的建议是始终声明实例化的类,而不是从我的示例代码中看到泛型(使用var)。

希望这会奏效! 干杯