Search in sources :

Example 6 with SlideAtom

use of org.apache.poi.hslf.record.SlideAtom in project poi by apache.

the class HSLFSlide method setNotes.

/**
	 * Sets the Notes that are associated with this. Updates the
	 *  references in the records to point to the new ID
	 */
@Override
public void setNotes(Notes<HSLFShape, HSLFTextParagraph> notes) {
    if (notes != null && !(notes instanceof HSLFNotes)) {
        throw new IllegalArgumentException("notes needs to be of type HSLFNotes");
    }
    _notes = (HSLFNotes) notes;
    // Update the Slide Atom's ID of where to point to
    SlideAtom sa = getSlideRecord().getSlideAtom();
    if (_notes == null) {
        // Set to 0
        sa.setNotesID(0);
    } else {
        // Set to the value from the notes' sheet id
        sa.setNotesID(_notes._getSheetNumber());
    }
}
Also used : SlideAtom(org.apache.poi.hslf.record.SlideAtom)

Example 7 with SlideAtom

use of org.apache.poi.hslf.record.SlideAtom in project poi by apache.

the class HSLFSlide method setMasterSheet.

/**
     * Change Master of this slide.
     */
public void setMasterSheet(HSLFMasterSheet master) {
    SlideAtom sa = getSlideRecord().getSlideAtom();
    int sheetNo = master._getSheetNumber();
    sa.setMasterID(sheetNo);
}
Also used : SlideAtom(org.apache.poi.hslf.record.SlideAtom)

Example 8 with SlideAtom

use of org.apache.poi.hslf.record.SlideAtom in project poi by apache.

the class HSLFTitleMaster method getMasterSheet.

/**
     * Returns the slide master for this title master.
     */
@Override
public HSLFMasterSheet getMasterSheet() {
    SlideAtom sa = ((org.apache.poi.hslf.record.Slide) getSheetContainer()).getSlideAtom();
    int masterId = sa.getMasterID();
    for (HSLFSlideMaster sm : getSlideShow().getSlideMasters()) {
        if (masterId == sm._getSheetNumber()) {
            return sm;
        }
    }
    return null;
}
Also used : SlideAtom(org.apache.poi.hslf.record.SlideAtom)

Example 9 with SlideAtom

use of org.apache.poi.hslf.record.SlideAtom in project poi by apache.

the class TestSlideChangeNotes method testSetToSomething.

@Test
public void testSetToSomething() {
    HSLFSlide slideOne = ss.getSlides().get(0);
    HSLFNotes notesOne = ss.getNotes().get(1);
    SlideAtom sa = slideOne.getSlideRecord().getSlideAtom();
    slideOne.setNotes(notesOne);
    assertEquals(notesOne._getSheetNumber(), sa.getNotesID());
}
Also used : SlideAtom(org.apache.poi.hslf.record.SlideAtom) Test(org.junit.Test)

Example 10 with SlideAtom

use of org.apache.poi.hslf.record.SlideAtom in project poi by apache.

the class SlideIdListing method main.

public static void main(String[] args) throws IOException {
    if (args.length < 1) {
        System.err.println("Need to give a filename");
        System.exit(1);
    }
    // Create the slideshow object, for normal working with
    HSLFSlideShowImpl hss = new HSLFSlideShowImpl(args[0]);
    HSLFSlideShow ss = new HSLFSlideShow(hss);
    // Grab the base contents
    fileContents = hss.getUnderlyingBytes();
    Record[] records = hss.getRecords();
    Record[] latestRecords = ss.getMostRecentCoreRecords();
    // Grab any records that interest us
    Document document = null;
    for (int i = 0; i < latestRecords.length; i++) {
        if (latestRecords[i] instanceof Document) {
            document = (Document) latestRecords[i];
        }
    }
    System.out.println("");
    // Look for SlidePersistAtoms, and report what they have to
    //  say about possible slide IDs
    SlideListWithText[] slwts = document.getSlideListWithTexts();
    for (int i = 0; i < slwts.length; i++) {
        Record[] cr = slwts[i].getChildRecords();
        for (int j = 0; j < cr.length; j++) {
            if (cr[j] instanceof SlidePersistAtom) {
                SlidePersistAtom spa = (SlidePersistAtom) cr[j];
                System.out.println("SlidePersistAtom knows about slide:");
                System.out.println("\t" + spa.getRefID());
                System.out.println("\t" + spa.getSlideIdentifier());
            }
        }
    }
    System.out.println("");
    // Look for latest core records that are slides or notes
    for (int i = 0; i < latestRecords.length; i++) {
        if (latestRecords[i] instanceof Slide) {
            Slide s = (Slide) latestRecords[i];
            SlideAtom sa = s.getSlideAtom();
            System.out.println("Found the latest version of a slide record:");
            System.out.println("\tCore ID is " + s.getSheetId());
            System.out.println("\t(Core Records count is " + i + ")");
            System.out.println("\tDisk Position is " + s.getLastOnDiskOffset());
            System.out.println("\tMaster ID is " + sa.getMasterID());
            System.out.println("\tNotes ID is " + sa.getNotesID());
        }
    }
    System.out.println("");
    for (int i = 0; i < latestRecords.length; i++) {
        if (latestRecords[i] instanceof Notes) {
            Notes n = (Notes) latestRecords[i];
            NotesAtom na = n.getNotesAtom();
            System.out.println("Found the latest version of a notes record:");
            System.out.println("\tCore ID is " + n.getSheetId());
            System.out.println("\t(Core Records count is " + i + ")");
            System.out.println("\tDisk Position is " + n.getLastOnDiskOffset());
            System.out.println("\tMatching slide is " + na.getSlideID());
        }
    }
    System.out.println("");
    // Find any persist ones first
    int pos = 0;
    for (int i = 0; i < records.length; i++) {
        Record r = records[i];
        if (r.getRecordType() == 6001l) {
            // PersistPtrFullBlock
            System.out.println("Found PersistPtrFullBlock at " + pos + " (" + Integer.toHexString(pos) + ")");
        }
        if (r.getRecordType() == 6002l) {
            // PersistPtrIncrementalBlock
            System.out.println("Found PersistPtrIncrementalBlock at " + pos + " (" + Integer.toHexString(pos) + ")");
            PersistPtrHolder pph = (PersistPtrHolder) r;
            // Check the sheet offsets
            int[] sheetIDs = pph.getKnownSlideIDs();
            Map<Integer, Integer> sheetOffsets = pph.getSlideLocationsLookup();
            for (int j = 0; j < sheetIDs.length; j++) {
                Integer id = sheetIDs[j];
                Integer offset = sheetOffsets.get(id);
                System.out.println("  Knows about sheet " + id);
                System.out.println("    That sheet lives at " + offset);
                Record atPos = findRecordAtPos(offset.intValue());
                System.out.println("    The record at that pos is of type " + atPos.getRecordType());
                System.out.println("    The record at that pos has class " + atPos.getClass().getName());
                if (!(atPos instanceof PositionDependentRecord)) {
                    System.out.println("    ** The record class isn't position aware! **");
                }
            }
        }
        // Increase the position by the on disk size
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        r.writeOut(baos);
        pos += baos.size();
    }
    ss.close();
    System.out.println("");
}
Also used : SlideListWithText(org.apache.poi.hslf.record.SlideListWithText) SlidePersistAtom(org.apache.poi.hslf.record.SlidePersistAtom) PersistPtrHolder(org.apache.poi.hslf.record.PersistPtrHolder) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Document(org.apache.poi.hslf.record.Document) HSLFSlideShow(org.apache.poi.hslf.usermodel.HSLFSlideShow) HSLFSlideShowImpl(org.apache.poi.hslf.usermodel.HSLFSlideShowImpl) NotesAtom(org.apache.poi.hslf.record.NotesAtom) PositionDependentRecord(org.apache.poi.hslf.record.PositionDependentRecord) SlideAtom(org.apache.poi.hslf.record.SlideAtom) Slide(org.apache.poi.hslf.record.Slide) Record(org.apache.poi.hslf.record.Record) PositionDependentRecord(org.apache.poi.hslf.record.PositionDependentRecord) Notes(org.apache.poi.hslf.record.Notes)

Aggregations

SlideAtom (org.apache.poi.hslf.record.SlideAtom)10 Notes (org.apache.poi.hslf.record.Notes)2 NotesAtom (org.apache.poi.hslf.record.NotesAtom)2 Record (org.apache.poi.hslf.record.Record)2 Slide (org.apache.poi.hslf.record.Slide)2 HSLFSlideShowImpl (org.apache.poi.hslf.usermodel.HSLFSlideShowImpl)2 Test (org.junit.Test)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 Document (org.apache.poi.hslf.record.Document)1 PersistPtrHolder (org.apache.poi.hslf.record.PersistPtrHolder)1 PositionDependentRecord (org.apache.poi.hslf.record.PositionDependentRecord)1 SlideListWithText (org.apache.poi.hslf.record.SlideListWithText)1 SlidePersistAtom (org.apache.poi.hslf.record.SlidePersistAtom)1 HSLFSlideShow (org.apache.poi.hslf.usermodel.HSLFSlideShow)1