private void ReadPdfAInfo() { byte[] metadata = null; IXmpProperty pdfaidConformance = null; IXmpProperty pdfaidPart = null; try { metadata = reader.Metadata; xmpMeta = XmpMetaParser.Parse(metadata, null); pdfaidConformance = xmpMeta.GetProperty(XmpConst.NS_PDFA_ID, "pdfaid:conformance"); pdfaidPart = xmpMeta.GetProperty(XmpConst.NS_PDFA_ID, "pdfaid:part"); } catch (Exception e) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.documents.can.be.opened.in.PdfAStamper")); } if (pdfaidConformance == null || pdfaidPart == null) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.documents.can.be.opened.in.PdfAStamper")); } switch (((IPdfAConformance)pdfIsoConformance).ConformanceLevel) { case PdfAConformanceLevel.PDF_A_1A: case PdfAConformanceLevel.PDF_A_1B: if (!"1".Equals(pdfaidPart.Value)) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.1.documents.can.be.opened.in.PdfAStamper", "1")); } break; case PdfAConformanceLevel.PDF_A_2A: case PdfAConformanceLevel.PDF_A_2B: case PdfAConformanceLevel.PDF_A_2U: if (!"2".Equals(pdfaidPart.Value)) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.1.documents.can.be.opened.in.PdfAStamper", "2")); } break; case PdfAConformanceLevel.PDF_A_3A: case PdfAConformanceLevel.PDF_A_3B: case PdfAConformanceLevel.PDF_A_3U: if (!"3".Equals(pdfaidPart.Value)) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.1.documents.can.be.opened.in.PdfAStamper", "3")); } break; } }
/** * Test getProperty, deleteProperty and related methods. * @param meta a predefined <code>XmpMeta</code> object. * @throws XmpException Forwards exceptions */ private static void CoverGetPropertyMethods(IXmpMeta meta) { writeMajorLabel("Test getProperty, deleteProperty and related methods"); meta.DeleteProperty(TestData.NS1, "QualProp1"); // ! Start with fresh qualifiers. meta.DeleteProperty(TestData.NS1, "ns1:QualProp2"); meta.DeleteProperty(TestData.NS1, "ns1:QualProp3"); meta.DeleteProperty(TestData.NS1, "QualProp4"); writeMinorLabel("Set properties with qualifier"); meta.SetProperty(TestData.NS1, "QualProp1", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp1", TestData.NS2, "Qual1", "Qual1 value"); meta.SetProperty(TestData.NS1, "QualProp2", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp2", XmpConstants.NsXml, "lang", "en-us"); meta.SetProperty(TestData.NS1, "QualProp3", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp3", XmpConstants.NsXml, "lang", "en-us"); meta.SetQualifier(TestData.NS1, "QualProp3", TestData.NS2, "Qual", "Qual value"); meta.SetProperty(TestData.NS1, "QualProp4", "Prop value"); meta.SetQualifier(TestData.NS1, "QualProp4", TestData.NS2, "Qual", "Qual value"); meta.SetQualifier(TestData.NS1, "QualProp4", XmpConstants.NsXml, "lang", "en-us"); printXmpMeta(meta, "XMP object"); writeMinorLabel("Get simple properties"); var property = meta.GetProperty(TestData.NS1, "Prop"); log.WriteLine("getProperty ns1:Prop = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:XMLProp"); log.WriteLine("getProperty ns1:XMLProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:URIProp"); log.WriteLine("getProperty ns1:URIProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "Bag", 2); log.WriteLine("getArrayItem ns1:Bag[2] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetArrayItem(null, "ns1:Bag", 1); } catch (XmpException e) { log.WriteLine("getArrayItem with no schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message + ")"); } writeMinorLabel("Get array items and struct fields"); property = meta.GetArrayItem(TestData.NS1, "ns1:Seq", 1); log.WriteLine("getArrayItem ns1:Seq[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "ns1:Alt", 1); log.WriteLine("getArrayItem ns1:Alt[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Field1"); log.WriteLine("getStructField ns1:Struct/ns2:Field1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "Field2"); log.WriteLine("getStructField ns1:Struct/ns2:Field2 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get qualifier"); property = meta.GetQualifier(TestData.NS1, "QualProp1", TestData.NS2, "Qual1"); log.WriteLine("getQualifier ns1:QualProp1/?ns2:Qual1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetQualifier(null, "ns1:QualProp1", TestData.NS2, "Qual1"); } catch (XmpException e) { log.WriteLine("getQualifier with no schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message); } property = meta.GetQualifier(TestData.NS1, "QualProp3", XmpConstants.NsXml, "xml:lang"); log.WriteLine("getQualifier ns1:QualProp3/@xml-lang = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetQualifier(TestData.NS1, "QualProp3", TestData.NS2, "ns2:Qual"); log.WriteLine("getQualifier ns1:QualProp3/?ns2:Qual = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get non-simple properties"); property = meta.GetProperty(TestData.NS1, "Bag"); log.WriteLine("getProperty ns1:Bag = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Seq"); log.WriteLine("getProperty ns1:Seq = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Alt"); log.WriteLine("getProperty ns1:Alt = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Struct"); log.WriteLine("getProperty ns1:Struct = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get not existing properties"); try { meta.GetProperty("ns:bogus/", "Bogus"); } catch (XmpException e) { log.WriteLine("getProperty with bogus schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message); } property = meta.GetProperty(TestData.NS1, "Bogus"); log.WriteLine("getProperty ns1:Bogus (not existing) = " + property); property = meta.GetArrayItem(TestData.NS1, "Bag", 99); log.WriteLine("ArrayItem ns1:Bag[99] (not existing) = " + property); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Bogus"); log.WriteLine("getStructField ns1:Struct/ns2:Bogus (not existing) = " + property); property = meta.GetQualifier(TestData.NS1, "Prop", TestData.NS2, "Bogus"); log.WriteLine("getQualifier ns1:Prop/?ns2:Bogus (not existing) = " + property); }
private void ReadPdfAInfo() { byte[] metadata = null; IXmpProperty pdfaidConformance = null; IXmpProperty pdfaidPart = null; try { metadata = reader.Metadata; xmpMeta = XmpMetaParser.Parse(metadata, null); pdfaidConformance = xmpMeta.GetProperty(XmpConst.NS_PDFA_ID, "pdfaid:conformance"); pdfaidPart = xmpMeta.GetProperty(XmpConst.NS_PDFA_ID, "pdfaid:part"); } catch(Exception e) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.documents.can.be.opened.in.PdfAStamper")); } if(pdfaidConformance == null || pdfaidPart == null) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.documents.can.be.opened.in.PdfAStamper")); } switch(((IPdfAConformance)pdfIsoConformance).ConformanceLevel) { case PdfAConformanceLevel.PDF_A_1A: case PdfAConformanceLevel.PDF_A_1B: if(!"1".Equals(pdfaidPart.Value)) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.1.documents.can.be.opened.in.PdfAStamper", "1")); } break; case PdfAConformanceLevel.PDF_A_2A: case PdfAConformanceLevel.PDF_A_2B: case PdfAConformanceLevel.PDF_A_2U: if(!"2".Equals(pdfaidPart.Value)) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.1.documents.can.be.opened.in.PdfAStamper", "2")); } break; case PdfAConformanceLevel.PDF_A_3A: case PdfAConformanceLevel.PDF_A_3B: case PdfAConformanceLevel.PDF_A_3U: if(!"3".Equals(pdfaidPart.Value)) { throw new PdfAConformanceException(MessageLocalization.GetComposedMessage("only.pdfa.1.documents.can.be.opened.in.PdfAStamper", "3")); } break; } }
/** * Test getProperty, deleteProperty and related methods. * @param meta a predefined <code>XmpMeta</code> object. * @throws XmpException Forwards exceptions */ private static void CoverGetPropertyMethods(IXmpMeta meta) { writeMajorLabel ("Test getProperty, deleteProperty and related methods"); meta.DeleteProperty (TestData.NS1, "QualProp1"); // ! Start with fresh qualifiers. meta.DeleteProperty (TestData.NS1, "ns1:QualProp2"); meta.DeleteProperty (TestData.NS1, "ns1:QualProp3"); meta.DeleteProperty (TestData.NS1, "QualProp4"); writeMinorLabel("Set properties with qualifier"); meta.SetProperty (TestData.NS1, "QualProp1", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp1", TestData.NS2, "Qual1", "Qual1 value"); meta.SetProperty (TestData.NS1, "QualProp2", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp2", XmpConstants.NsXml, "lang", "en-us"); meta.SetProperty (TestData.NS1, "QualProp3", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp3", XmpConstants.NsXml, "lang", "en-us"); meta.SetQualifier (TestData.NS1, "QualProp3", TestData.NS2, "Qual", "Qual value"); meta.SetProperty (TestData.NS1, "QualProp4", "Prop value"); meta.SetQualifier (TestData.NS1, "QualProp4", TestData.NS2, "Qual", "Qual value"); meta.SetQualifier (TestData.NS1, "QualProp4", XmpConstants.NsXml, "lang", "en-us"); printXmpMeta (meta, "XMP object"); writeMinorLabel("Get simple properties"); var property = meta.GetProperty(TestData.NS1, "Prop"); log.WriteLine("getProperty ns1:Prop = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:XMLProp"); log.WriteLine("getProperty ns1:XMLProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "ns1:URIProp"); log.WriteLine("getProperty ns1:URIProp = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "Bag", 2); log.WriteLine("getArrayItem ns1:Bag[2] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetArrayItem(null, "ns1:Bag", 1); } catch (XmpException e) { log.WriteLine("getArrayItem with no schema URI - threw XmpException #" + e.GetErrorCode() +" : " + e.Message + ")"); } writeMinorLabel("Get array items and struct fields"); property = meta.GetArrayItem(TestData.NS1, "ns1:Seq", 1); log.WriteLine("getArrayItem ns1:Seq[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetArrayItem(TestData.NS1, "ns1:Alt", 1); log.WriteLine("getArrayItem ns1:Alt[1] = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Field1"); log.WriteLine("getStructField ns1:Struct/ns2:Field1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "Field2"); log.WriteLine("getStructField ns1:Struct/ns2:Field2 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetStructField(TestData.NS1, "ns1:Struct", TestData.NS2, "ns2:Field3"); log.WriteLine("getStructField ns1:Struct/ns2:Field3 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get qualifier"); property = meta.GetQualifier(TestData.NS1, "QualProp1", TestData.NS2, "Qual1"); log.WriteLine("getQualifier ns1:QualProp1/?ns2:Qual1 = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); try { meta.GetQualifier(null, "ns1:QualProp1", TestData.NS2, "Qual1"); } catch (XmpException e) { log.WriteLine("getQualifier with no schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message); } property = meta.GetQualifier(TestData.NS1, "QualProp3", XmpConstants.NsXml, "xml:lang"); log.WriteLine("getQualifier ns1:QualProp3/@xml-lang = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetQualifier(TestData.NS1, "QualProp3", TestData.NS2, "ns2:Qual"); log.WriteLine("getQualifier ns1:QualProp3/?ns2:Qual = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get non-simple properties"); property = meta.GetProperty(TestData.NS1, "Bag"); log.WriteLine("getProperty ns1:Bag = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Seq"); log.WriteLine("getProperty ns1:Seq = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Alt"); log.WriteLine("getProperty ns1:Alt = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); property = meta.GetProperty(TestData.NS1, "Struct"); log.WriteLine("getProperty ns1:Struct = " + property.Value + " (" + property.Options.GetOptionsString() + ")"); log.WriteLine(); writeMinorLabel("Get not existing properties"); try { meta.GetProperty("ns:bogus/", "Bogus"); } catch (XmpException e) { log.WriteLine("getProperty with bogus schema URI - threw XmpException #" + e.GetErrorCode() + " : " + e.Message); } property = meta.GetProperty (TestData.NS1, "Bogus"); log.WriteLine ("getProperty ns1:Bogus (not existing) = " + property); property = meta.GetArrayItem(TestData.NS1, "Bag", 99); log.WriteLine ("ArrayItem ns1:Bag[99] (not existing) = " + property); property = meta.GetStructField(TestData.NS1, "Struct", TestData.NS2, "Bogus"); log.WriteLine ("getStructField ns1:Struct/ns2:Bogus (not existing) = " + property); property = meta.GetQualifier (TestData.NS1, "Prop", TestData.NS2, "Bogus"); log.WriteLine ("getQualifier ns1:Prop/?ns2:Bogus (not existing) = " + property); }