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

📄 testpictures.java

📁 java 读写word excel ppt
💻 JAVA
字号:
/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements.  See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You under the Apache License, Version 2.0* (the "License"); you may not use this file except in compliance with* the License.  You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package org.apache.poi.hwpf.usermodel;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.util.Iterator;import java.util.List;import org.apache.poi.hwpf.HWPFDocument;import org.apache.poi.hwpf.model.TextPiece;import org.apache.poi.hwpf.usermodel.Paragraph;import org.apache.poi.hwpf.usermodel.Range;import org.apache.poi.util.LittleEndian;import junit.framework.TestCase;/** * Test the picture handling * * @author Nick Burch (nick at torchbox dot com) */public class TestPictures extends TestCase {	private String dirname = System.getProperty("HWPF.testdata.path");	    protected void setUp() throws Exception {    }			        /**     * two jpegs     */    public void testTwoImages() throws Exception {    	HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/two_images.doc"));    	List pics = doc.getPicturesTable().getAllPictures();    	    	assertNotNull(pics);    	assertEquals(pics.size(), 2);    	for(int i=0; i<pics.size(); i++) {    		Object p = pics.get(i);    		assertTrue(p instanceof Picture);    		    		Picture pic = (Picture)p;    		assertNotNull(pic.suggestFileExtension());    		assertNotNull(pic.suggestFullFileName());    	}    	    	Picture picA = (Picture)pics.get(0);    	Picture picB = (Picture)pics.get(1);    	assertEquals("jpg", picA.suggestFileExtension());    	assertEquals("jpg", picA.suggestFileExtension());    }        /**     * pngs and jpegs     */    public void testDifferentImages() throws Exception {    	HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/testPictures.doc"));    	List pics = doc.getPicturesTable().getAllPictures();    	    	assertNotNull(pics);    	assertEquals(7, pics.size());    	for(int i=0; i<pics.size(); i++) {    		Object p = pics.get(i);    		assertTrue(p instanceof Picture);    		    		Picture pic = (Picture)p;    		assertNotNull(pic.suggestFileExtension());    		assertNotNull(pic.suggestFullFileName());    	}    	    	assertEquals("jpg", ((Picture)pics.get(0)).suggestFileExtension());    	assertEquals("jpg", ((Picture)pics.get(1)).suggestFileExtension());    	assertEquals("png", ((Picture)pics.get(3)).suggestFileExtension());    	assertEquals("png", ((Picture)pics.get(4)).suggestFileExtension());    	assertEquals("wmf", ((Picture)pics.get(5)).suggestFileExtension());    	assertEquals("jpg", ((Picture)pics.get(6)).suggestFileExtension());    }        /**     * emf image, nice and simple     */    public void testEmfImage() throws Exception {    	HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/vector_image.doc"));    	List pics = doc.getPicturesTable().getAllPictures();    	    	assertNotNull(pics);    	assertEquals(1, pics.size());    	    	Picture pic = (Picture)pics.get(0);    	assertNotNull(pic.suggestFileExtension());    	assertNotNull(pic.suggestFullFileName());    	assertTrue(pic.getSize() > 128);    	    	// Check right contents    	byte[] emf = loadImage("vector_image.emf");    	byte[] pemf = pic.getContent();    	assertEquals(emf.length, pemf.length);    	for(int i=0; i<emf.length; i++) {    		assertEquals(emf[i], pemf[i]);    	}    }        /**     * emf image, with a crazy offset     */    public void testEmfComplexImage() throws Exception {    	HWPFDocument doc = new HWPFDocument(new FileInputStream(dirname + "/emf_2003_image.doc"));    	List pics = doc.getPicturesTable().getAllPictures();    	    	assertNotNull(pics);    	assertEquals(1, pics.size());    	Picture pic = (Picture)pics.get(0);    	assertNotNull(pic.suggestFileExtension());    	assertNotNull(pic.suggestFullFileName());    	    	// This one's tricky    	// TODO: Fix once we've sorted bug #41898    	assertNotNull(pic.getContent());    	assertNotNull(pic.getRawContent());    	    	// These are probably some sort of offset, need to figure them out    	assertEquals(4, pic.getSize());    	assertEquals(0x80000000l, LittleEndian.getUInt(pic.getContent()));    	assertEquals(0x80000000l, LittleEndian.getUInt(pic.getRawContent()));    }            private byte[] loadImage(String filename) throws Exception {    	ByteArrayOutputStream b = new ByteArrayOutputStream();    	FileInputStream fis = new FileInputStream(dirname + "/" + filename);    	    	byte[] buf = new byte[4096];    	int read = 0;    	while( (read = fis.read(buf)) > -1 ) {    		b.write(buf, 0, read);    	}    	return b.toByteArray();    }}

⌨️ 快捷键说明

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