virtual public void FileSpecCheckTest2() { Document document = new Document(); PdfAWriter writer = PdfAWriter.GetInstance(document, new FileStream(OUT + "fileSpecCheckTest2.pdf", FileMode.Create), PdfAConformanceLevel.PDF_A_3B); writer.CreateXmpMetadata(); document.Open(); Font font = FontFactory.GetFont(RESOURCES + "FreeMonoBold.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED, 12); document.Add(new Paragraph("Hello World", font)); FileStream iccProfileFileStream = File.Open(RESOURCES + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read, FileShare.Read); ICC_Profile icc = ICC_Profile.GetInstance(iccProfileFileStream); iccProfileFileStream.Close(); writer.SetOutputIntents("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", icc); MemoryStream txt = new MemoryStream(); StreamWriter outp = new StreamWriter(txt); outp.Write("<foo><foo2>Hello world</foo2></foo>"); outp.Close(); PdfFileSpecification fs = PdfFileSpecification.FileEmbedded(writer, null, "foo.xml", txt.ToArray()); fs.Put(PdfName.AFRELATIONSHIP, AFRelationshipValue.Unspecified); writer.AddFileAttachment(fs); document.Close(); }
public virtual void FileSpecCheckTest7() { FileStream inPdf = new FileStream(RESOURCES + "fileSpec.pdf", FileMode.Open); MemoryStream xml = new MemoryStream(); StreamWriter sr = new StreamWriter(xml); sr.Write("<foo><foo2>Hello world</foo2></foo>"); sr.Close(); MemoryStream output = new MemoryStream(); PdfReader reader = new PdfReader(inPdf); PdfAStamper stamper = new PdfAStamper(reader, output, PdfAConformanceLevel.PDF_A_3B); stamper.CreateXmpMetadata(); PdfDictionary embeddedFileParams = new PdfDictionary(); embeddedFileParams.Put(PdfName.MODDATE, new PdfDate()); PdfFileSpecification fs = PdfFileSpecification.FileEmbedded(stamper.Writer, "foo", "foo", xml.ToArray(), "text/xml", embeddedFileParams, 0); fs.Put(PdfName.AFRELATIONSHIP, AFRelationshipValue.Source); stamper.AddFileAttachment("description", fs); stamper.Close(); reader.Close(); }
virtual public void FileSpecCheckTest6() { Document document = new Document(); PdfAWriter writer = PdfAWriter.GetInstance(document, new FileStream(OUT + "fileSpecCheckTest2.pdf", FileMode.Create), PdfAConformanceLevel.PDF_A_3B); writer.CreateXmpMetadata(); document.Open(); Font font = FontFactory.GetFont(RESOURCES + "FreeMonoBold.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED, 12); document.Add(new Paragraph("Hello World", font)); FileStream iccProfileFileStream = File.Open(RESOURCES + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read, FileShare.Read); ICC_Profile icc = ICC_Profile.GetInstance(iccProfileFileStream); iccProfileFileStream.Close(); writer.SetOutputIntents("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", icc); PdfDictionary _params = new PdfDictionary(); _params.Put(PdfName.MODDATE, new PdfDate()); PdfFileSpecification fileSpec = PdfFileSpecification.FileEmbedded( writer, RESOURCES + "foo.xml", "foo.xml", null, false, "text/xml", _params); fileSpec.Put(PdfName.AFRELATIONSHIP, AFRelationshipValue.Data); writer.AddFileAttachment(fileSpec); document.Close(); }
private static void SetPdfAConformance(PdfReader reader, Document doc, MemoryStream ms) { // Create PdfAWriter with PdfAConformanceLevel.PDF_A_3B option if you // want to get a PDF/A-3b compliant document. PdfAWriter writer = PdfAWriter.GetInstance(doc, ms, _pdfaConformanceLevel); // Create XMP metadata. It's a PDF/A requirement. writer.CreateXmpMetadata(); doc.Open(); // Set output intent. PDF/A requirement. ICC_Profile icc = ICC_Profile .GetInstance(new FileStream(@"resources/sRGB Color Space Profile.icm", FileMode.Open)); writer.SetOutputIntents("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", icc); // Creating PDF/A-3 compliant attachment. PdfDictionary parameters = new PdfDictionary(); parameters.Put(PdfName.MODDATE, new PdfDate()); PdfFileSpecification fileSpec = PdfFileSpecification.FileEmbedded( writer, _inputFilePath, "test.pdf", null, "application/pdf", parameters, 0); fileSpec.Put(new PdfName("AFRelationship"), new PdfName("Data")); writer.AddFileAttachment("test.pdf", fileSpec); PdfArray array = new PdfArray { fileSpec.Reference }; writer.ExtraCatalog.Put(new PdfName("AF"), array); doc.AddDocListener(writer); for (int i = 1; i <= reader.NumberOfPages; i++) { doc.SetPageSize(reader.GetPageSize(i)); doc.NewPage(); PdfContentByte cb = writer.DirectContent; PdfImportedPage page = writer.GetImportedPage(reader, i); int rotation = reader.GetPageRotation(i); if (rotation == 90 || rotation == 270) { cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height); } else { cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0); } } }
private static PdfFileSpecification EmbeddedAttachment(string filePath, string fileName, string mimeType, PdfName afRelationship, PdfAWriter writer, string description) { PdfDictionary parameters = new PdfDictionary(); parameters.Put(PdfName.MODDATE, new PdfDate(File.GetLastWriteTime(filePath))); PdfFileSpecification fileSpec = PdfFileSpecification.FileEmbedded(writer, filePath, fileName, null, mimeType, parameters, 0); fileSpec.Put(new PdfName("AFRelationship"), afRelationship); writer.AddFileAttachment(description, fileSpec); return(fileSpec); }
public void ZugferdInvoiceTest() { Document document = new Document(); PdfAWriter writer = PdfAWriter.GetInstance(document, new FileStream(OUT + "zugferdInvoiceTest.pdf", FileMode.Create), PdfAConformanceLevel.ZUGFeRD); writer.CreateXmpMetadata(); writer.XmpWriter.SetProperty(PdfAXmpWriter.zugferdSchemaNS, PdfAXmpWriter.zugferdDocumentFileName, "invoice.xml"); document.Open(); Font font = FontFactory.GetFont(RESOURCES + "FreeMonoBold.ttf", BaseFont.WINANSI, BaseFont.EMBEDDED, 12); document.Add(new Paragraph("Hello World", font)); FileStream iccProfileFileStream = File.Open(RESOURCES + "sRGB Color Space Profile.icm", FileMode.Open, FileAccess.Read, FileShare.Read); ICC_Profile icc = ICC_Profile.GetInstance(iccProfileFileStream); iccProfileFileStream.Close(); writer.SetOutputIntents("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", icc); PdfDictionary parameters = new PdfDictionary(); parameters.Put(PdfName.MODDATE, new PdfDate()); PdfFileSpecification fileSpec = PdfFileSpecification.FileEmbedded( writer, RESOURCES + "invoice.xml", "invoice.xml", null, "application/xml", parameters, 0); fileSpec.Put(PdfName.AFRELATIONSHIP, AFRelationshipValue.Alternative); writer.AddFileAttachment("invoice.xml", fileSpec); PdfArray array = new PdfArray(); array.Add(fileSpec.Reference); writer.ExtraCatalog.Put(new PdfName("AF"), array); document.Close(); }