public virtual void ColorCheckTest7() { NUnit.Framework.Assert.That(() => { String outPdf = destinationFolder + "pdfA2b_colorCheckTest7.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA2b_colorCheckTest7.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); PdfCanvas canvas = new PdfCanvas(doc.AddNewPage()); String shortText = "text"; PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", true); canvas.SetFontAndSize(font, 12); canvas.SetTextRenderingMode(PdfCanvasConstants.TextRenderingMode.STROKE); canvas.SetFillColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f)).BeginText().ShowText(shortText).EndText(); canvas.SetTextRenderingMode(PdfCanvasConstants.TextRenderingMode.STROKE); canvas.SetFillColor(DeviceGray.GRAY).BeginText().ShowText(shortText).EndText(); canvas.SetTextRenderingMode(PdfCanvasConstants.TextRenderingMode.INVISIBLE); canvas.SetFillColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f)).BeginText().ShowText(shortText).EndText(); doc.Close(); CompareResult(outPdf, cmpPdf); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.DEVICECMYK_MAY_BE_USED_ONLY_IF_THE_FILE_HAS_A_CMYK_PDFA_OUTPUT_INTENT_OR_DEFAULTCMYK_IN_USAGE_CONTEXT)) ; }
public virtual void ImageCheckTest4() { String outPdf = destinationFolder + "pdfA2b_imageCheckTest4.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA2b_imageCheckTest4.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); PdfCanvas canvas; for (int i = 1; i < 5; ++i) { canvas = new PdfCanvas(doc.AddNewPage()); canvas.AddImage(ImageDataFactory.Create(MessageFormatUtil.Format(sourceFolder + "jpeg2000/file{0}.jp2", i. ToString())), 300, 300, false); } canvas = new PdfCanvas(doc.AddNewPage()); canvas.AddImage(ImageDataFactory.Create(sourceFolder + "jpeg2000/file6.jp2"), 300, 300, false); for (int i = 8; i < 10; ++i) { canvas = new PdfCanvas(doc.AddNewPage()); canvas.AddImage(ImageDataFactory.Create(MessageFormatUtil.Format(sourceFolder + "jpeg2000/file{0}.jp2", i. ToString())), 300, 300, false); } doc.Close(); CompareResult(outPdf, cmpPdf); }
public virtual void CanvasCheckTest2() { String outPdf = destinationFolder + "pdfA2b_canvasCheckTest2.pdf"; String cmpPdf = sourceFolder + "cmp/PdfA2CanvasCheckTest/cmp_pdfA2b_canvasCheckTest2.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); pdfDocument.AddNewPage(); PdfCanvas canvas = new PdfCanvas(pdfDocument.GetLastPage()); for (int i = 0; i < 28; i++) { canvas.SaveState(); } for (int i = 0; i < 28; i++) { canvas.RestoreState(); } pdfDocument.Close(); String result = new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (result != null) { NUnit.Framework.Assert.Fail(result); } }
public virtual void ColorCheckTest4() { NUnit.Framework.Assert.That(() => { String outPdf = destinationFolder + "pdfA2b_colorCheckTest4.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA2b_colorCheckTest4.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); PdfCanvas canvas = new PdfCanvas(doc.AddNewPage()); canvas.SetFillColor(ColorConstants.BLUE); canvas.SetStrokeColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f)); canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.Fill(); canvas.SetFillColor(DeviceGray.BLACK); canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.Fill(); doc.Close(); CompareResult(outPdf, cmpPdf); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.DEVICECMYK_MAY_BE_USED_ONLY_IF_THE_FILE_HAS_A_CMYK_PDFA_OUTPUT_INTENT_OR_DEFAULTCMYK_IN_USAGE_CONTEXT)) ; }
public virtual void ColorCheckTest1() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.SetFillColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f)); canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.Fill(); canvas.SetFillColor(ColorConstants.RED); canvas.MoveTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.Fill(); doc.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.DEVICERGB_AND_DEVICECMYK_COLORSPACES_CANNOT_BE_USED_BOTH_IN_ONE_FILE)) ; }
public virtual void PdfA1aRadioFieldOffAppearanceTest() { String name = "pdfA1a_radioFieldOffAppearance"; String outPath = destinationFolder + name + ".pdf"; String cmpPath = cmpFolder + "cmp_" + name + ".pdf"; String diff = "diff_" + name + "_"; PdfWriter writer = new PdfWriter(outPath); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); doc.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); PdfButtonFormField group = PdfFormField.CreateRadioGroup(doc, "group", "1", PdfAConformanceLevel.PDF_A_1B); group.SetReadOnly(true); Rectangle rect1 = new Rectangle(36, 700, 20, 20); Rectangle rect2 = new Rectangle(36, 680, 20, 20); PdfFormField.CreateRadioButton(doc, rect1, group, "1", PdfAConformanceLevel.PDF_A_1B).SetBorderWidth(2).SetBorderColor (ColorConstants.RED).SetBackgroundColor(ColorConstants.LIGHT_GRAY).SetVisibility(PdfFormField.VISIBLE); PdfFormField.CreateRadioButton(doc, rect2, group, "2", PdfAConformanceLevel.PDF_A_1B).SetBorderWidth(2).SetBorderColor (ColorConstants.RED).SetBackgroundColor(ColorConstants.LIGHT_GRAY).SetVisibility(PdfFormField.VISIBLE); form.AddField(group); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPath, cmpPath, destinationFolder, diff )); }
public virtual void FileSpecCheckTest01() { String outPdf = destinationFolder + "pdfA3b_fileSpecCheckTest01.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA3b_fileSpecCheckTest01.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_3B, outputIntent); PdfPage page = pdfDocument.AddNewPage(); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", "WinAnsi", true); PdfCanvas canvas = new PdfCanvas(page); canvas.SaveState().BeginText().MoveText(36, 700).SetFontAndSize(font, 36).ShowText("Hello World!").EndText ().RestoreState(); MemoryStream txt = new MemoryStream(); StreamWriter @out = new StreamWriter(txt); @out.Write("<foo><foo2>Hello world</foo2></foo>"); @out.Dispose(); pdfDocument.AddAssociatedFile("foo file", PdfFileSpec.CreateEmbeddedFileSpec(pdfDocument, txt.ToArray(), "foo file" , "foo.xml", PdfName.ApplicationXml, null, PdfName.Source)); pdfDocument.Close(); CompareResult(outPdf, cmpPdf); }
public virtual void FileSpecCheckTest02() { String outPdf = destinationFolder + "pdfA2b_fileSpecCheckTest02.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA2b_fileSpecCheckTest02.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); PdfPage page = pdfDocument.AddNewPage(); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", "WinAnsi", true); PdfCanvas canvas = new PdfCanvas(page); canvas.SaveState().BeginText().MoveText(36, 700).SetFontAndSize(font, 36).ShowText("Hello World!").EndText ().RestoreState(); FileStream fis = new FileStream(sourceFolder + "pdfs/pdfa.pdf", FileMode.Open, FileAccess.Read); MemoryStream os = new MemoryStream(); byte[] buffer = new byte[1024]; int length; while ((length = fis.JRead(buffer, 0, buffer.Length)) > 0) { os.Write(buffer, 0, length); } pdfDocument.AddFileAttachment("some pdf file", PdfFileSpec.CreateEmbeddedFileSpec(pdfDocument, os.ToArray( ), "some pdf file", "foo.pdf", PdfName.ApplicationPdf, null, null)); pdfDocument.Close(); CompareResult(outPdf, cmpPdf); }
public virtual void ColorCheckTest4() { String outPdf = destinationFolder + "pdfA2b_colorCheckTest4.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA2b_colorCheckTest4.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); PdfCanvas canvas = new PdfCanvas(doc.AddNewPage()); canvas.SetFillColor(Color.BLUE); canvas.SetStrokeColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f)); canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.Fill(); canvas.SetFillColor(DeviceGray.BLACK); canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.Fill(); doc.Close(); CompareResult(outPdf, cmpPdf); }
public virtual void PdfA1bButtonAppearanceRegenerateTest() { String name = "pdfA1b_ButtonAppearanceRegenerateTest"; String outPath = destinationFolder + name + ".pdf"; String cmpPath = cmpFolder + "cmp_" + name + ".pdf"; String diff = "diff_" + name + "_"; PdfWriter writer = new PdfWriter(outPath); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.SetTagged(); doc.GetCatalog().SetLang(new PdfString("en-US")); doc.AddNewPage(); PdfAcroForm form = PdfAcroForm.GetAcroForm(doc, true); Rectangle rect = new Rectangle(36, 626, 100, 40); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", "WinAnsi", true); PdfFormField button = PdfFormField.CreatePushButton(doc, rect, "push button", "push", font, 12, PdfAConformanceLevel .PDF_A_1B); button.RegenerateField(); form.AddField(button); doc.Close(); NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPath, cmpPath, destinationFolder, diff )); }
public virtual void ListTest01() { String outPdf = destinationFolder + "pdfA1b_listTest01.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA1b_listTest01.pdf"; Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(new PdfWriter(outPdf), PdfAConformanceLevel.PDF_A_1B, outputIntent ); Document doc = new Document(pdfDocument); pdfDocument.SetTagged(); PdfFont textfont = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", PdfEncodings.WINANSI, true); textfont.SetSubset(true); List list = new List(); ListItem listItem = new ListItem(); listItem.Add(new Paragraph().Add("foobar")); list.Add(listItem); listItem.SetFont(textfont); doc.Add(list); doc.Close(); String result = new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"); if (result != null) { NUnit.Framework.Assert.Fail(result); } }
/// <summary>Constructs a new PdfADocument for writing purposes, i.e. from scratch.</summary> /// <remarks> /// Constructs a new PdfADocument for writing purposes, i.e. from scratch. A /// PDF/A file has a conformance level, and must have an explicit output /// intent. /// </remarks> /// <param name="writer"> /// the /// <see cref="iText.Kernel.Pdf.PdfWriter"/> /// object to write to /// </param> /// <param name="conformanceLevel">the generation and strictness level of the PDF/A that must be followed.</param> /// <param name="outputIntent"> /// a /// <see cref="iText.Kernel.Pdf.PdfOutputIntent"/> /// </param> /// <param name="properties"> /// a /// <see cref="iText.Kernel.Pdf.DocumentProperties"/> /// </param> public PdfADocument(PdfWriter writer, PdfAConformanceLevel conformanceLevel, PdfOutputIntent outputIntent, DocumentProperties properties) : base(writer, properties) { SetChecker(conformanceLevel); AddOutputIntent(outputIntent); }
/// <summary> /// Main method for running the sample. /// </summary> public static SampleOutputInfo[] Run(Stream iccInput, Stream ttfInput) { PdfFixedDocument document = new PdfFixedDocument(); // Setup the document by creating a PDF/A output intent, based on a RGB ICC profile, // and document information and metadata PdfIccColorSpace icc = new PdfIccColorSpace(); byte[] profilePayload = new byte[iccInput.Length]; iccInput.Read(profilePayload, 0, profilePayload.Length); icc.IccProfile = profilePayload; PdfOutputIntent oi = new PdfOutputIntent(); oi.Type = PdfOutputIntentType.PdfA1; oi.Info = "sRGB IEC61966-2.1"; oi.OutputConditionIdentifier = "Custom"; oi.DestinationOutputProfile = icc; document.OutputIntents = new PdfOutputIntentCollection(); document.OutputIntents.Add(oi); document.DocumentInformation = new PdfDocumentInformation(); document.DocumentInformation.Author = "XFINIUM Software"; document.DocumentInformation.Title = "XFINIUM.PDF PDF/A-1B Demo"; document.DocumentInformation.Creator = "XFINIUM.PDF PDF/A-1B Demo"; document.DocumentInformation.Producer = "XFINIUM.PDF"; document.DocumentInformation.Keywords = "pdf/a"; document.DocumentInformation.Subject = "PDF/A-1B Sample produced by XFINIUM.PDF"; document.XmpMetadata = new PdfXmpMetadata(); PdfPage page = document.Pages.Add(); page.Rotation = 90; // All fonts must be embedded in a PDF/A document. PdfStringAppearanceOptions sao = new PdfStringAppearanceOptions(); sao.Font = new PdfAnsiTrueTypeFont(ttfInput, 24, true); sao.Brush = new PdfBrush(new PdfRgbColor(0, 0, 128)); PdfStringLayoutOptions slo = new PdfStringLayoutOptions(); slo.HorizontalAlign = PdfStringHorizontalAlign.Center; slo.VerticalAlign = PdfStringVerticalAlign.Bottom; slo.X = page.Width / 2; slo.Y = page.Height / 2 - 10; page.Graphics.DrawString("XFINIUM.PDF", sao, slo); slo.Y = page.Height / 2 + 10; slo.VerticalAlign = PdfStringVerticalAlign.Top; sao.Font.Size = 16; page.Graphics.DrawString("This is a sample PDF/A document that shows the PDF/A capabilities in XFINIUM.PDF library", sao, slo); // The document is formatted as PDF/A using the PdfAFormatter class: // PdfAFormatter.Save(document, outputStream, PdfAFormat.PdfA1b); SampleOutputInfo[] output = new SampleOutputInfo[] { new SampleOutputInfo(document, "xfinium.pdf.sample.pdfa.pdf") }; return(output); }
/// <summary> /// Main method for running the sample. /// </summary> public static SampleOutputInfo[] Run(Stream iccInput, Stream ttfInput) { PdfFixedDocument document = new PdfFixedDocument(); // Setup the document by creating a PDF/A output intent, based on a RGB ICC profile, // and document information and metadata PdfIccColorSpace icc = new PdfIccColorSpace(); byte[] profilePayload = new byte[iccInput.Length]; iccInput.Read(profilePayload, 0, profilePayload.Length); icc.IccProfile = profilePayload; PdfOutputIntent oi = new PdfOutputIntent(); oi.Type = PdfOutputIntentType.PdfA1; oi.Info = "sRGB IEC61966-2.1"; oi.OutputConditionIdentifier = "Custom"; oi.DestinationOutputProfile = icc; document.OutputIntents = new PdfOutputIntentCollection(); document.OutputIntents.Add(oi); document.DocumentInformation = new PdfDocumentInformation(); document.DocumentInformation.Author = "XFINIUM Software"; document.DocumentInformation.Title = "XFINIUM.PDF PDF/A-1B Demo"; document.DocumentInformation.Creator = "XFINIUM.PDF PDF/A-1B Demo"; document.DocumentInformation.Producer = "XFINIUM.PDF"; document.DocumentInformation.Keywords = "pdf/a"; document.DocumentInformation.Subject = "PDF/A-1B Sample produced by XFINIUM.PDF"; document.XmpMetadata = new PdfXmpMetadata(); PdfPage page = document.Pages.Add(); page.Rotation = 90; // All fonts must be embedded in a PDF/A document. PdfStringAppearanceOptions sao = new PdfStringAppearanceOptions(); sao.Font = new PdfAnsiTrueTypeFont(ttfInput, 24, true); sao.Brush = new PdfBrush(new PdfRgbColor(0, 0, 128)); PdfStringLayoutOptions slo = new PdfStringLayoutOptions(); slo.HorizontalAlign = PdfStringHorizontalAlign.Center; slo.VerticalAlign = PdfStringVerticalAlign.Bottom; slo.X = page.Width / 2; slo.Y = page.Height / 2 - 10; page.Graphics.DrawString("XFINIUM.PDF", sao, slo); slo.Y = page.Height / 2 + 10; slo.VerticalAlign = PdfStringVerticalAlign.Top; sao.Font.Size = 16; page.Graphics.DrawString("This is a sample PDF/A document that shows the PDF/A capabilities in XFINIUM.PDF library", sao, slo); // The document is formatted as PDF/A using the PdfAFormatter class: // PdfAFormatter.Save(document, outputStream, PdfAFormat.PdfA1b); SampleOutputInfo[] output = new SampleOutputInfo[] { new SampleOutputInfo(document, "xfinium.pdf.sample.pdfa.pdf") }; return output; }
public virtual void ImageCheckTest3() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.AddImage(ImageDataFactory.Create(sourceFolder + "jpeg2000/file7.jp2"), 300, 300, false); doc.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.ExactlyOneColourSpaceSpecificationShallHaveTheValue0x01InTheApproxField)); ; }
public virtual void CanvasCheckTest3() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); pdfDocument.AddNewPage(); PdfCanvas canvas = new PdfCanvas(pdfDocument.GetLastPage()); canvas.SetRenderingIntent(new PdfName("Test")); pdfDocument.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.IF_SPECIFIED_RENDERING_SHALL_BE_ONE_OF_THE_FOLLOWING_RELATIVECOLORIMETRIC_ABSOLUTECOLORIMETRIC_PERCEPTUAL_OR_SATURATION)) ; }
public virtual void ImageCheckTest3() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.AddImage(ImageDataFactory.Create(sourceFolder + "jpeg2000/file7.jp2"), 300, 300, false); doc.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.EXACTLY_ONE_COLOUR_SPACE_SPECIFICATION_SHALL_HAVE_THE_VALUE_0X01_IN_THE_APPROX_FIELD)) ; }
public virtual void CanvasCheckTest3() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); pdfDocument.AddNewPage(); PdfCanvas canvas = new PdfCanvas(pdfDocument.GetLastPage()); canvas.SetRenderingIntent(new PdfName("Test")); pdfDocument.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.IfSpecifiedRenderingShallBeOneOfTheFollowingRelativecolorimetricAbsolutecolorimetricPerceptualOrSaturation)); ; }
public virtual void ImageCheckTest1() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.AddImage(ImageDataFactory.Create(sourceFolder + "jpeg2000/p0_01.j2k"), 300, 300, false); doc.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.ONLY_JPX_BASELINE_SET_OF_FEATURES_SHALL_BE_USED)) ; }
public virtual void EgsCheckTest1() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.SetExtGState(new PdfExtGState().Put(PdfName.HTP, new PdfName("Test"))); canvas.Rectangle(30, 30, 100, 100).Fill(); doc.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.AN_EXTGSTATE_DICTIONARY_SHALL_NOT_CONTAIN_THE_HTP_KEY)) ; }
public virtual void TransparencyCheckTest2() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.SetExtGState(new PdfExtGState().SetSoftMask(new PdfName("Test"))); canvas.Rectangle(30, 30, 100, 100).Fill(); doc.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.THE_SMASK_KEY_IS_NOT_ALLOWED_IN_EXTGSTATE)); ; }
public virtual void EgsCheckTest3() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.SetExtGState(new PdfExtGState().SetTransferFunction2(new PdfName("Test"))); canvas.Rectangle(30, 30, 100, 100).Fill(); doc.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.AnExtgstateDictionaryShallNotContainTheTR2KeyWithAValueOtherThanDefault)); ; }
private static void DoImageToPdfAOcr(AbstractTesseract4OcrEngine tesseractReader, IList <FileInfo> imageFiles ) { OcrPdfCreator ocrPdfCreator = new OcrPdfCreator(tesseractReader, new OcrPdfCreatorProperties().SetPdfLang( "en-US")); Stream @is = null; try { @is = new FileStream(PROFILE_FOLDER + "sRGB_CS_profile.icm", FileMode.Open, FileAccess.Read); } catch (FileNotFoundException) { } // No expected PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); ocrPdfCreator.CreatePdfA(imageFiles, new PdfWriter(new MemoryStream()), outputIntent); }
public virtual void TransparencyCheckTest3() { String outPdf = destinationFolder + "pdfA1b_transparencyCheckTest3.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA1b_transparencyCheckTest3.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); canvas.SetExtGState(new PdfExtGState().SetSoftMask(PdfName.None)); canvas.Rectangle(30, 30, 100, 100).Fill(); doc.Close(); CompareResult(outPdf, cmpPdf); }
public virtual void KeywordsInfoTestPdfA2b() { String outFile = destinationFolder + "keywordsInfoTestPdfA2b.pdf"; String cmpFile = cmpFolder + "cmp_keywordsInfoTestPdfA2b.pdf"; Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(new PdfWriter(outFile), PdfAConformanceLevel.PDF_A_2B, outputIntent); doc.AddNewPage(); doc.GetDocumentInfo().SetKeywords("key1, key2 , key3;key4,key5"); doc.Close(); CompareTool ct = new CompareTool(); NUnit.Framework.Assert.IsNull(ct.CompareByContent(outFile, cmpFile, destinationFolder)); NUnit.Framework.Assert.IsNull(ct.CompareDocumentInfo(outFile, cmpFile)); NUnit.Framework.Assert.IsNull(ct.CompareXmp(outFile, cmpFile, true)); }
/// <summary> /// Creates a new PDF document using provided properties, adds images with /// recognized text. /// </summary> /// <param name="pdfWriter"> /// the /// <see cref="iText.Kernel.Pdf.PdfWriter"/> /// object /// to write final PDF document to /// </param> /// <param name="pdfOutputIntent"> /// /// <see cref="iText.Kernel.Pdf.PdfOutputIntent"/> /// for PDF/A-3u document /// </param> /// <param name="imagesTextData"> /// map that contains input image files as keys, /// and as value: map pageNumber -> text for the page /// </param> /// <returns> /// result /// <see cref="iText.Kernel.Pdf.PdfDocument"/> /// object /// </returns> private PdfDocument CreatePdfDocument(PdfWriter pdfWriter, PdfOutputIntent pdfOutputIntent, IDictionary <FileInfo , IDictionary <int, IList <TextInfo> > > imagesTextData) { PdfDocument pdfDocument; bool createPdfA3u = pdfOutputIntent != null; if (createPdfA3u) { pdfDocument = new PdfADocument(pdfWriter, PdfAConformanceLevel.PDF_A_3U, pdfOutputIntent, new DocumentProperties ().SetEventCountingMetaInfo(new PdfOcrMetaInfo())); } else { pdfDocument = new PdfDocument(pdfWriter, new DocumentProperties().SetEventCountingMetaInfo(new PdfOcrMetaInfo ())); } // pdfLang should be set in PDF/A mode bool hasPdfLangProperty = ocrPdfCreatorProperties.GetPdfLang() != null && !ocrPdfCreatorProperties.GetPdfLang ().Equals(""); if (createPdfA3u && !hasPdfLangProperty) { LOGGER.Error(MessageFormatUtil.Format(OcrException.CANNOT_CREATE_PDF_DOCUMENT, PdfOcrLogMessageConstant.PDF_LANGUAGE_PROPERTY_IS_NOT_SET )); throw new OcrException(OcrException.CANNOT_CREATE_PDF_DOCUMENT).SetMessageParams(PdfOcrLogMessageConstant. PDF_LANGUAGE_PROPERTY_IS_NOT_SET); } // add metadata if (hasPdfLangProperty) { pdfDocument.GetCatalog().SetLang(new PdfString(ocrPdfCreatorProperties.GetPdfLang())); } // set title if it is not empty if (ocrPdfCreatorProperties.GetTitle() != null) { pdfDocument.GetCatalog().SetViewerPreferences(new PdfViewerPreferences().SetDisplayDocTitle(true)); PdfDocumentInfo info = pdfDocument.GetDocumentInfo(); info.SetTitle(ocrPdfCreatorProperties.GetTitle()); } // reset passed font provider ocrPdfCreatorProperties.GetFontProvider().Reset(); AddDataToPdfDocument(imagesTextData, pdfDocument, createPdfA3u); return(pdfDocument); }
public virtual void FileSpecCheckTest02() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); PdfStream stream = new PdfStream(); pdfDocument.GetCatalog().Put(new PdfName("testStream"), stream); PdfFileSpec spec = PdfFileSpec.CreateEmbeddedFileSpec(pdfDocument, sourceFolder + "sample.wav", "sample.wav" , "sample", null, null); stream.Put(PdfName.F, spec.GetPdfObject()); pdfDocument.AddNewPage(); pdfDocument.Close(); } , NUnit.Framework.Throws.InstanceOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.STREAM_OBJECT_DICTIONARY_SHALL_NOT_CONTAIN_THE_F_FFILTER_OR_FDECODEPARAMS_KEYS)) ; }
public virtual void FileSpecCheckTest03() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_1B, outputIntent); PdfStream stream = new PdfStream(); pdfDocument.GetCatalog().Put(new PdfName("testStream"), stream); PdfFileSpec spec = PdfFileSpec.CreateEmbeddedFileSpec(pdfDocument, sourceFolder + "sample.wav", "sample.wav" , "sample", null, null, true); stream.Put(new PdfName("fileData"), spec.GetPdfObject()); pdfDocument.AddNewPage(); pdfDocument.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.FileSpecificationDictionaryShallNotContainTheEFKey)); ; }
public virtual void ColorCheckTest3() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); PdfCanvas canvas = new PdfCanvas(doc.AddNewPage()); canvas.SetFillColor(new DeviceCmyk(0.1f, 0.1f, 0.1f, 0.1f)); canvas.MoveTo(doc.GetDefaultPageSize().GetLeft(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetBottom()); canvas.LineTo(doc.GetDefaultPageSize().GetRight(), doc.GetDefaultPageSize().GetTop()); canvas.Fill(); doc.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.DevicecmykMayBeUsedOnlyIfTheFileHasACmykPdfAOutputIntentOrDefaultCmykInUsageContext)); ; }
public virtual void EgsCheckTest2() { NUnit.Framework.Assert.That(() => { PdfWriter writer = new PdfWriter(new MemoryStream()); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument doc = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2B, outputIntent); doc.AddNewPage(); PdfCanvas canvas = new PdfCanvas(doc.GetLastPage()); PdfDictionary dict = new PdfDictionary(); dict.Put(PdfName.HalftoneType, new PdfNumber(5)); dict.Put(PdfName.HalftoneName, new PdfName("Test")); canvas.SetExtGState(new PdfExtGState().SetHalftone(dict)); canvas.Rectangle(30, 30, 100, 100).Fill(); doc.Close(); } , NUnit.Framework.Throws.TypeOf <PdfAConformanceException>().With.Message.EqualTo(PdfAConformanceException.HALFTONES_SHALL_NOT_CONTAIN_HALFTONENAME)); ; }
public virtual void FileSpecCheckTest03() { String outPdf = destinationFolder + "pdfA3b_fileSpecCheckTest03.pdf"; String cmpPdf = cmpFolder + "cmp_pdfA3b_fileSpecCheckTest03.pdf"; PdfWriter writer = new PdfWriter(outPdf); Stream @is = new FileStream(sourceFolder + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read); PdfOutputIntent outputIntent = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1" , @is); PdfADocument pdfDocument = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_3B, outputIntent); PdfPage page = pdfDocument.AddNewPage(); PdfFont font = PdfFontFactory.CreateFont(sourceFolder + "FreeSans.ttf", "WinAnsi", true); PdfCanvas canvas = new PdfCanvas(page); canvas.SaveState().BeginText().MoveText(36, 700).SetFontAndSize(font, 36).ShowText("Hello World!").EndText ().RestoreState(); byte[] somePdf = new byte[25]; pdfDocument.AddFileAttachment("some pdf file", somePdf, "foo.pdf", PdfName.ApplicationPdf, null, PdfName.Data ); pdfDocument.Close(); CompareResult(outPdf, cmpPdf); }