<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5,  comments - 7,  trackbacks - 0
    import java.io.*
    import java.util.*
    import org.apache.poi.poifs.filesystem.*
    import org.apache.poi.util.LittleEndian; 

    public class WordTest 
    public WordTest() 
    }
     
    public static boolean writeWordFile(String path, String content) 
    boolean w = false
    try 

    // byte b[] = content.getBytes("ISO-8859-1"); 
    byte b[] = content.getBytes(); 

    ByteArrayInputStream bais 
    = new ByteArrayInputStream(b); 

    POIFSFileSystem fs 
    = new POIFSFileSystem(); 
    DirectoryEntry directory 
    = fs.getRoot(); 

    DocumentEntry de 
    = directory.createDocument("WordDocument", bais); 

    FileOutputStream ostream 
    = new FileOutputStream(path); 

    fs.writeFilesystem(ostream); 

    bais.close(); 
    ostream.close(); 

    }
     catch (IOException e) 
    e.printStackTrace(); 
    }
     
    return w; 
    }
     
    public static void main(String[] args)
    boolean b = writeWordFile("E://test.doc","hello"); 
    }
     
    }
     
    /* 
    public String extractText(InputStream in) throws IOException { 
    ArrayList text = new ArrayList(); 
    POIFSFileSystem fsys = new POIFSFileSystem(in); 

    DocumentEntry headerProps = (DocumentEntry) fsys.getRoot().getEntry("WordDocument"); 
    DocumentInputStream din = fsys.createDocumentInputStream("WordDocument"); 
    byte[] header = new byte[headerProps.getSize()]; 

    din.read(header); 
    din.close(); 
    // Prende le informazioni dall'header del documento 
    int info = LittleEndian.getShort(header, 0xa); 

    boolean useTable1 = (info & 0x200) != 0; 

    //boolean useTable1 = true; 

    // Prende informazioni dalla piece table 
    int complexOffset = LittleEndian.getInt(header, 0x1a2); 
    //int complexOffset = LittleEndian.getInt(header); 

    String tableName = null; 
    if (useTable1) { 
    tableName = "1Table"; 
    } else { 
    tableName = "0Table"; 


    DocumentEntry table = (DocumentEntry) fsys.getRoot().getEntry(tableName); 
    byte[] tableStream = new byte[table.getSize()]; 

    din = fsys.createDocumentInputStream(tableName); 

    din.read(tableStream); 
    din.close(); 

    din = null; 
    fsys = null; 
    table = null; 
    headerProps = null; 

    int multiple = findText(tableStream, complexOffset, text); 

    StringBuffer sb = new StringBuffer(); 
    int size = text.size(); 
    tableStream = null; 

    for (int x = 0; x < size; x++) { 

    WordTextPiece nextPiece = (WordTextPiece) text.get(x); 
    int start = nextPiece.getStart(); 
    int length = nextPiece.getLength(); 

    boolean unicode = nextPiece.usesUnicode(); 
    String toStr = null; 
    if (unicode) { 
    toStr = new String(header, start, length * multiple, "UTF-16LE"); 
    } else { 
    toStr = new String(header, start, length, "ISO-8859-1"); 

    sb.append(toStr).append(" "); 


    return sb.toString(); 


    private static int findText(byte[] tableStream, int complexOffset, ArrayList text) 
    throws IOException { 
    //actual text 
    int pos = complexOffset; 
    int multiple = 2; 
    //skips through the prms before we reach the piece table. These contain data 
    //for actual fast saved files 
    while (tableStream[pos] == 1) { 
    pos++; 
    int skip = LittleEndian.getShort(tableStream, pos); 
    pos += 2 + skip; 

    if (tableStream[pos] != 2) { 
    throw new IOException("corrupted Word file"); 
    } else { 
    //parse out the text pieces 
    int pieceTableSize = LittleEndian.getInt(tableStream, ++pos); 
    pos += 4; 
    int pieces = (pieceTableSize - 4) / 12; 
    for (int x = 0; x < pieces; x++) { 
    int filePos = 
    LittleEndian.getInt(tableStream, pos + ((pieces + 1) * 4) + (x *<img src="/images/forum/smiles/icon_cool.gif"/> + 2); 
    boolean unicode = false; 
    if ((filePos & 0x40000000) == 0) { 
    unicode = true; 
    } else { 
    unicode = false; 
    multiple = 1; 
    filePos &= ~(0x40000000); //gives me FC in doc stream 
    filePos /= 2; 

    int totLength = 
    LittleEndian.getInt(tableStream, pos + (x + 1) * 4) 
    - LittleEndian.getInt(tableStream, pos + (x * 4)); 

    WordTextPiece piece = new WordTextPiece(filePos, totLength, unicode); 
    text.add(piece); 




    return multiple; 

    public static void main(String[] args){ 
    WordTest w = new WordTest(); 
    POIFSFileSystem ps = new POIFSFileSystem(); 
    try{ 

    File file = new File("C:\\test.doc"); 

    InputStream in = new FileInputStream(file); 
    String s = w.extractText(in); 
    System.out.println(s); 


    }catch(Exception e){ 
    e.printStackTrace(); 



    public boolean writeWordFile(String path, String content) { 
    boolean w = false; 
    try { 

    // byte b[] = content.getBytes("ISO-8859-1"); 
    byte b[] = content.getBytes(); 

    ByteArrayInputStream bais = new ByteArrayInputStream(b); 

    POIFSFileSystem fs = new POIFSFileSystem(); 
    DirectoryEntry directory = fs.getRoot(); 

    DocumentEntry de = directory.createDocument("WordDocument", bais); 

    FileOutputStream ostream = new FileOutputStream(path); 

    fs.writeFilesystem(ostream); 

    bais.close(); 
    ostream.close(); 

    } catch (IOException e) { 
    e.printStackTrace(); 


    return w; 




    class WordTextPiece { 
    private int _fcStart; 
    private boolean _usesUnicode; 
    private int _length; 

    public WordTextPiece(int start, int length, boolean unicode) { 
    _usesUnicode = unicode; 
    _length = length; 
    _fcStart = start; 

    public boolean usesUnicode() { 
    return _usesUnicode; 


    public int getStart() { 
    return _fcStart; 

    public int getLength() { 
    return _length; 



    */
     
    posted on 2008-11-29 09:55 Vincent-chen 閱讀(4190) 評論(1)  編輯  收藏 所屬分類: POI
    主站蜘蛛池模板: 久久精品电影免费动漫| 国产免费福利体检区久久| 91av视频免费在线观看| 亚洲国产精品无码久久久蜜芽| 2022免费国产精品福利在线| 亚洲一区二区精品视频| xxxxx做受大片视频免费| 亚洲AV蜜桃永久无码精品| 一级做性色a爰片久久毛片免费| 亚洲精品国产精品乱码不卞| 无码人妻一区二区三区免费视频| 亚洲AV中文无码乱人伦| 精品人妻系列无码人妻免费视频 | 亚洲中文字幕丝袜制服一区| 国产国产人免费人成成免视频 | 在线观看日本免费a∨视频| 456亚洲人成影院在线观| 大陆一级毛片免费视频观看| 亚洲人成网站在线播放2019 | 亚洲国产婷婷六月丁香| 无码午夜成人1000部免费视频| 久久精品国产亚洲AV大全| 免费福利网站在线观看| 亚洲av中文无码乱人伦在线观看| 亚洲av高清在线观看一区二区| a色毛片免费视频| 亚洲视频中文字幕在线| 我想看一级毛片免费的| 青青草97国产精品免费观看| 国产gv天堂亚洲国产gv刚刚碰| 日本在线免费观看| 亚洲入口无毒网址你懂的| 免费大黄网站在线观| 国产精品免费高清在线观看| 亚洲一级免费视频| 亚洲av麻豆aⅴ无码电影| 久久免费视频99| 精品国产亚洲一区二区三区在线观看 | 四虎影视永久在线精品免费 | 2020天堂在线亚洲精品专区| 亚洲一区二区精品视频|