<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
    主站蜘蛛池模板: 亚洲一区精品无码| 亚洲人成电影网站国产精品 | 亚洲一级毛片免观看| 永久在线观看免费视频| 亚洲av无码国产精品色午夜字幕| 中文字幕在线免费看| 亚洲AV永久无码精品水牛影视| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 亚洲国产美女精品久久久久| 亚洲三级在线免费观看| 亚洲精品第五页中文字幕| 4399影视免费观看高清直播| 亚洲蜜芽在线精品一区| 美女视频黄免费亚洲| 亚洲欧美成人av在线观看| 亚洲AV无码乱码在线观看| gogo免费在线观看| 久久精品国产亚洲av成人| 国产精彩免费视频| 亚洲天然素人无码专区| 内射无码专区久久亚洲 | 国产精品成人观看视频免费| 亚洲免费视频网址| 国产成人免费高清在线观看 | 久久成人免费大片| 亚洲av日韩av综合| 全黄性性激高免费视频| 两个人看的www免费视频| 亚洲资源在线视频| 国产婷婷高清在线观看免费| 中文字幕久无码免费久久| 亚洲人成电影在线观看网| 亚洲第一区精品日韩在线播放| 成人网站免费看黄A站视频| 亚洲色欲色欲www| 亚洲精品无码成人片在线观看| 久久久久久国产精品免费免费男同| 亚洲成人午夜电影| 亚洲午夜精品久久久久久浪潮 | 亚洲白嫩在线观看| 亚洲日韩中文在线精品第一|