⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testrichtextrun.java

📁 java 读写word excel ppt
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				assertTrue(s3rtr0[0]._isParagraphStyleShared());		assertTrue(s3rtr0[1]._isParagraphStyleShared());		assertFalse(s3rtr1[0]._isParagraphStyleShared());		assertTrue(s3rtr2[0]._isParagraphStyleShared());		assertTrue(s3rtr2[1]._isParagraphStyleShared());				assertFalse(s3rtr0[0]._isCharacterStyleShared());		assertFalse(s3rtr0[1]._isCharacterStyleShared());		assertFalse(s3rtr1[0]._isCharacterStyleShared());		assertFalse(s3rtr2[0]._isCharacterStyleShared());		assertFalse(s3rtr2[1]._isCharacterStyleShared());				// On slide seven, we have:		// TR:		//  (text)		// TR:		//  <ps>(text a)</ps><ps>(text a)(text b)</ps>		// TR:    		//  (text)		TextRun[] s7tr = slideSevenC.getTextRuns();		RichTextRun[] s7rtr0 = s7tr[0].getRichTextRuns();		RichTextRun[] s7rtr1 = s7tr[1].getRichTextRuns();		RichTextRun[] s7rtr2 = s7tr[2].getRichTextRuns();				assertEquals(1, s7rtr0.length);		assertEquals(3, s7rtr1.length);		assertEquals(1, s7rtr2.length);				assertFalse(s7rtr0[0]._isParagraphStyleShared());		assertFalse(s7rtr1[0]._isParagraphStyleShared());		assertTrue(s7rtr1[1]._isParagraphStyleShared());		assertTrue(s7rtr1[2]._isParagraphStyleShared());		assertFalse(s7rtr2[0]._isParagraphStyleShared());				assertFalse(s7rtr0[0]._isCharacterStyleShared());		assertTrue(s7rtr1[0]._isCharacterStyleShared());		assertTrue(s7rtr1[1]._isCharacterStyleShared());		assertFalse(s7rtr1[2]._isCharacterStyleShared());		assertFalse(s7rtr2[0]._isCharacterStyleShared());	}		/**	 * Test that we can do the right things when the paragraph styles	 *  run out before the character styles do, when we tweak something	 *  and write back out.	 */	public void testParagraphStylesShorterTheCharStylesWrite() throws Exception {		assertMatchesSLTWC(ssRichC);		assertMatchesFileC(ssRichC);				Slide slideSevenC = ssRichC.getSlides()[6];		TextRun[] s7tr = slideSevenC.getTextRuns();		RichTextRun[] s7rtr0 = s7tr[0].getRichTextRuns();		RichTextRun[] s7rtr1 = s7tr[1].getRichTextRuns();		RichTextRun[] s7rtr2 = s7tr[2].getRichTextRuns();				String oldText;				// Reset the text on the last run		// Need to ensure it's a run that really has styles!		oldText = s7rtr2[0].getRawText();		s7rtr2[0].setText( oldText );		assertEquals(oldText, s7rtr2[0].getText());		assertEquals(oldText, s7tr[2].getText());		assertEquals(oldText.length() + 1, s7rtr2[0]._getRawCharacterStyle().getCharactersCovered());		assertEquals(oldText.length() + 1, s7rtr2[0]._getRawParagraphStyle().getCharactersCovered());		assertMatchesSLTWC(ssRichC);		assertMatchesFileC(ssRichC);				// Reset the text on a shared paragraph		oldText = s7rtr1[2].getRawText();		s7rtr1[2].setText( oldText );		assertEquals(oldText, s7rtr1[2].getText());		assertEquals(oldText.length() + 1, s7rtr1[2]._getRawCharacterStyle().getCharactersCovered());		assertMatchesSLTWC(ssRichC);		assertMatchesFileC(ssRichC);				// Reset the text on a shared paragraph+character		s7rtr1[1].setText( s7rtr1[1].getRawText() );		assertMatchesSLTWC(ssRichC);		assertMatchesFileC(ssRichC);	}		/**	 * Opens a new copy of SlideShow C, writes the active 	 *  SlideListWithText out, and compares it to the write	 *  out of the supplied SlideShow. Also compares the	 *  contents.	 * @param s	 */	private void assertMatchesSLTWC(SlideShow s) throws Exception {		// Grab a new copy of slideshow C		SlideShow refC = new SlideShow(new HSLFSlideShow(filenameC));		// Write out the 2nd SLWT in the active document		SlideListWithText refSLWT = refC.getDocumentRecord().getSlideListWithTexts()[1]; 		byte[] raw_slwt = writeRecord(refSLWT);				// Write out the same for the supplied slideshow		SlideListWithText s_SLWT = s.getDocumentRecord().getSlideListWithTexts()[1]; 		byte[] s_slwt = writeRecord(s_SLWT);				// Check the records are the same		assertEquals(refSLWT.getChildRecords().length, s_SLWT.getChildRecords().length);		for(int i=0; i<refSLWT.getChildRecords().length; i++) {			Record ref_r = refSLWT.getChildRecords()[i];			Record s_r = s_SLWT.getChildRecords()[i];						byte[] r_rb = writeRecord(ref_r);			byte[] s_rb = writeRecord(s_r);			assertEquals(r_rb.length, s_rb.length);			for(int j=0; j<r_rb.length; j++) {				assertEquals(r_rb[j],s_rb[j]);			}		}				// Check the bytes are the same		assertEquals(raw_slwt.length, s_slwt.length);		for(int i=0; i<raw_slwt.length; i++) {			assertEquals(raw_slwt[i], s_slwt[i]);		}	}		/**	 * Checks that the supplied slideshow still matches the bytes	 *  of slideshow c 	 */	private void assertMatchesFileC(SlideShow s) throws Exception {		// Disabled, pending fix of bug #39800		System.err.println("Skipping test, as would be marked as failed due to bug #39800");if(false) {		// Grab the bytes of the file		FileInputStream fin = new FileInputStream(filenameC);		ByteArrayOutputStream fb = new ByteArrayOutputStream();		byte[] b = new byte[4096];		int read = 0;		while(read != -1) {			read = fin.read(b);			if(read > 0) {				fb.write(b, 0, read);			}		}		byte[] raw_file = fb.toByteArray();				// Now write out the slideshow		ByteArrayOutputStream baos = new ByteArrayOutputStream();		s.write(baos);		byte[] raw_ss = baos.toByteArray();				// Ensure they're the same		assertEquals(raw_file.length, raw_ss.length);		for(int i=0; i<raw_file.length; i++) {			assertEquals(raw_file[i], raw_ss[i]);		}}	}		private byte[] writeRecord(Record r) throws Exception {		ByteArrayOutputStream baos = new ByteArrayOutputStream();		r.writeOut(baos);		return baos.toByteArray();	}    public void testIndentationLevel() throws Exception {        SlideShow ppt = new SlideShow(new HSLFSlideShow(new File(System.getProperty("HSLF.testdata.path"), "ParagraphStylesShorterThanCharStyles.ppt").getPath()));        Slide[] sl = ppt.getSlides();        for (int i = 0; i < sl.length; i++) {            TextRun[] txt = sl[i].getTextRuns();            for (int j = 0; j < txt.length; j++) {                RichTextRun[] rt = txt[j].getRichTextRuns();                for (int k = 0; k < rt.length; k++) {                    int indent = rt[k].getIndentLevel();                    assertTrue(indent >= 0 && indent <= 4 );                }            }        }    }    public void testReadParagraphStyles() throws Exception {        FileInputStream is = new FileInputStream(new File(System.getProperty("HSLF.testdata.path"), "bullets.ppt"));        SlideShow ppt = new SlideShow(is);        is.close();        assertTrue("No Exceptions while reading file", true);        RichTextRun rt;        TextRun[] txt;        Slide[] slide = ppt.getSlides();        assertEquals(2, slide.length);        txt = slide[0].getTextRuns();        assertEquals(2, txt.length);        assertEquals("Title text", txt[0].getRawText());        assertEquals(1, txt[0].getRichTextRuns().length);        rt = txt[0].getRichTextRuns()[0];        assertFalse(rt.isBullet());        assertEquals(                "This is a text placeholder that \r" +                "follows the design pattern\r" +                "Defined in the slide master\r" +                "and has bullets by default", txt[1].getRawText());        assertEquals(1, txt[1].getRichTextRuns().length);        rt = txt[1].getRichTextRuns()[0];        assertEquals('\u2022', rt.getBulletChar());        assertTrue(rt.isBullet());        txt = slide[1].getTextRuns();        assertEquals(2, txt.length);        assertEquals(                "I\u2019m a text box\r" +                "With bullets\r" +                "That follow the design pattern\r" +                "From the slide master", txt[0].getRawText());        assertEquals(1, txt[0].getRichTextRuns().length);        rt = txt[0].getRichTextRuns()[0];        assertTrue(rt.isBullet());        assertEquals('\u2022', rt.getBulletChar());        assertEquals(                "I\u2019m a text box with user-defined\r" +                "bullet character", txt[1].getRawText());        assertEquals(1, txt[1].getRichTextRuns().length);        rt = txt[1].getRichTextRuns()[0];        assertTrue(rt.isBullet());        assertEquals('\u263A', rt.getBulletChar());    }    public void testSetParagraphStyles() throws Exception {        SlideShow ppt = new SlideShow();        Slide slide = ppt.createSlide();        TextBox shape = new TextBox();        RichTextRun rt = shape.getTextRun().getRichTextRuns()[0];        shape.setText(                "Hello, World!\r" +                "This should be\r" +                "Multiline text");        rt.setFontSize(42);        rt.setBullet(true);        rt.setTextOffset(50);        rt.setBulletOffset(0);        rt.setBulletChar('\u263A');        slide.addShape(shape);        assertEquals(42, rt.getFontSize());        assertEquals(true, rt.isBullet());        assertEquals(50, rt.getTextOffset());        assertEquals(0, rt.getBulletOffset());        assertEquals('\u263A', rt.getBulletChar());        shape.setAnchor(new java.awt.Rectangle(50, 50, 500, 300));        slide.addShape(shape);        //serialize and read again        ByteArrayOutputStream out = new ByteArrayOutputStream();        ppt.write(out);        out.close();        ppt = new SlideShow(new ByteArrayInputStream(out.toByteArray()));        slide = ppt.getSlides()[0];        shape = (TextBox)slide.getShapes()[0];        rt = shape.getTextRun().getRichTextRuns()[0];        assertEquals(42, rt.getFontSize());        assertEquals(true, rt.isBullet());        assertEquals(50, rt.getTextOffset());        assertEquals(0, rt.getBulletOffset());        assertEquals('\u263A', rt.getBulletChar());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -