/// <summary> /// Creates section 2 if it is not alReady present. /// </summary> private void EnsureSection2() { if (SectionCount < 2) { MutableSection s2 = new MutableSection(); s2.SetFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID2); AddSection(s2); } }
internal static DocumentSummaryInformation NewDocumentSummaryInformation() { MutablePropertySet ps = new MutablePropertySet(); MutableSection s = (MutableSection)ps.FirstSection; s.SetFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID1); try { return(new DocumentSummaryInformation(ps)); } catch (UnexpectedPropertySetTypeException ex) { /* This should never happen. */ throw new HPSFRuntimeException(ex); } }
/// <summary> /// Creates a new summary information /// </summary> /// <returns>the new summary information.</returns> public static SummaryInformation CreateSummaryInformation() { MutablePropertySet ps = new MutablePropertySet(); MutableSection s = (MutableSection)ps.FirstSection; s.SetFormatID(SectionIDMap.SUMMARY_INFORMATION_ID); try { return(new SummaryInformation(ps)); } catch (UnexpectedPropertySetTypeException ex) { /* This should never happen. */ throw new HPSFRuntimeException(ex); } }
/// <summary> /// Creates section 2 if it is not alReady present. /// </summary> private void EnsureSection2() { if (SectionCount < 2) { MutableSection s2 = new MutableSection(); s2.SetFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID2); AddSection(s2); } }
public void TestGetCustomerProperties() { long ID_1 = 2; long ID_2 = 3; String NAME_1 = "Schlüssel"; String VALUE_1 = "Wert 1"; Hashtable dictionary = new Hashtable(); DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation(); CustomProperties cps; MutableSection s; /* A document summary information Set stream by default does have custom properties. */ cps = dsi.CustomProperties; Assert.AreEqual(null, cps); /* Test an empty custom properties Set. */ s = new MutableSection(); s.SetFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID2); // s.SetCodepage(Constants.CP_UNICODE); dsi.AddSection(s); cps = dsi.CustomProperties; Assert.AreEqual(0, cps.Count); /* Add a custom property. */ MutableProperty p = new MutableProperty(); p.ID=ID_1; p.Type=Variant.VT_LPWSTR; p.Value=VALUE_1; s.SetProperty(p); dictionary[ID_1]=NAME_1; s.Dictionary=(dictionary); cps = dsi.CustomProperties; Assert.AreEqual(1, cps.Count); Assert.IsTrue(cps.IsPure); /* Add another custom property. */ s.SetProperty((int)ID_2, Variant.VT_LPWSTR, VALUE_1); dictionary[ID_2]=NAME_1; s.Dictionary=(dictionary); cps = dsi.CustomProperties; Assert.AreEqual(1, cps.Count); Assert.IsFalse(cps.IsPure); }
public void TestWriteTwoSections() { String STREAM_NAME = "PropertySetStream"; String SECTION1 = "Section 1"; String SECTION2 = "Section 2"; FileInfo fi = TempFile.CreateTempFile(POI_FS, ".doc"); FileStream file = new FileStream(fi.FullName, FileMode.Open, FileAccess.ReadWrite); //filename.deleteOnExit(); FileStream out1 = file; POIFSFileSystem poiFs = new POIFSFileSystem(); MutablePropertySet ps = new MutablePropertySet(); ps.ClearSections(); ClassID formatID = new ClassID(); formatID.Bytes = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; MutableSection s1 = new MutableSection(); s1.SetFormatID(formatID); s1.SetProperty(2, SECTION1); ps.AddSection(s1); MutableSection s2 = new MutableSection(); s2.SetFormatID(formatID); s2.SetProperty(2, SECTION2); ps.AddSection(s2); poiFs.CreateDocument(ps.GetStream(), STREAM_NAME); poiFs.WriteFileSystem(out1); //out1.Close(); /* Read the POIFS: */ psa = new PropertySet[1]; POIFSReader reader2 = new POIFSReader(); //reader2.StreamReaded += new POIFSReaderEventHandler(reader2_StreamReaded); POIFSReaderListener2 prl = new POIFSReaderListener2(); reader2.RegisterListener(prl); reader2.Read(file); Assert.IsNotNull(psa[0]); Section s = (Section)(psa[0].Sections[0]); Assert.AreEqual(s.FormatID, formatID); Object p = s.GetProperty(2); Assert.AreEqual(SECTION1, p); s = (Section)(psa[0].Sections[1]); p = s.GetProperty(2); Assert.AreEqual(SECTION2, p); file.Close(); //File.Delete(dataDir + POI_FS); try { File.Delete(fi.FullName); } catch { } }
public void TestWriteSimplePropertySet() { String AUTHOR = "Rainer Klute"; String TITLE = "Test Document"; FileInfo fi = TempFile.CreateTempFile(POI_FS, ".doc"); FileStream file = new FileStream(fi.FullName, FileMode.Open, FileAccess.ReadWrite); FileStream out1 = file; POIFSFileSystem poiFs = new POIFSFileSystem(); MutablePropertySet ps = new MutablePropertySet(); MutableSection si = new MutableSection(); si.SetFormatID(SectionIDMap.SUMMARY_INFORMATION_ID); ps.Sections[0] = si; MutableProperty p = new MutableProperty(); p.ID = PropertyIDMap.PID_AUTHOR; p.Type = Variant.VT_LPWSTR; p.Value = AUTHOR; si.SetProperty(p); si.SetProperty(PropertyIDMap.PID_TITLE, Variant.VT_LPSTR, TITLE); poiFs.CreateDocument(ps.GetStream(), SummaryInformation.DEFAULT_STREAM_NAME); poiFs.WriteFileSystem(out1); //out1.Close(); file.Position = 0; POIFSReader reader1 = new POIFSReader(); //reader1.StreamReaded += new POIFSReaderEventHandler(reader1_StreamReaded); POIFSReaderListener1 psl = new POIFSReaderListener1(); reader1.RegisterListener(psl); reader1.Read(file); Assert.IsNotNull(psa[0]); Assert.IsTrue(psa[0].IsSummaryInformation); Section s = (Section)(psa[0].Sections[0]); Object p1 = s.GetProperty(PropertyIDMap.PID_AUTHOR); Object p2 = s.GetProperty(PropertyIDMap.PID_TITLE); Assert.AreEqual(AUTHOR, p1); Assert.AreEqual(TITLE, p2); file.Close(); try { File.Delete(fi.FullName); } catch { } }