예제 #1
0
        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();
        }
예제 #2
0
        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();
        }
예제 #3
0
        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();
        }
예제 #4
0
        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);
                }
            }
        }
예제 #5
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);
        }
예제 #6
0
        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();
        }