zoukankan      html  css  js  c++  java
  • 读取金蝶图片

    package com.fr.function;
    
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.StringWriter;
    import java.io.UnsupportedEncodingException;
    import java.io.Writer;
    import java.util.Arrays;
    import java.util.zip.DataFormatException;
    import java.util.zip.Inflater;
    import com.fr.data.core.db.*;
    import com.fr.script.AbstractFunction;
    import com.fr.stable.ArrayUtils;
    import com.fr.stable.Primitive;
    import javax.swing.JEditorPane;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.EditorKit;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    public class getK3ZipRTF extends AbstractFunction{
            private static final long serialVersionUID = 1L;
            @Override
            public Object run(Object[] args) {
                    // TODO Auto-generated method stub
                    if(ArrayUtils.getLength(args)!=1) {
                            return Primitive.ERROR_VALUE;
                    }                
                    return getK3Rtf2Html((BinaryObject)args[0]);
            }
            /***
             * 
             * @param data 从数据库取得的IMAGE类型数据
             * @return 解压后的字节数组
             */
            private static byte[] decompress(BinaryObject data) {
                            byte[] bt=data.getBytes();
                            Inflater decompresser=new Inflater(); //压缩对象
                            decompresser.reset(); //清空对象数据
                            decompresser.setInput(bt);//入入待解压二进制数
                            int len=-1;
                                    byte[] buf=new byte[1024];
                                    try {
                                            len=decompresser.inflate(buf); //解压后的数据写入字节数组,并获得数据长度
                                    } catch (DataFormatException e) {
                                            e.printStackTrace();
                                    }
                                    decompresser.end();                //结束解压
                                    return Arrays.copyOf(buf,len); 
                    }
            private static String getK3Rtf2Html(BinaryObject ins)
                    {
                            String insNew=null;
                            byte[] b=decompress(ins); //解压后的字节数组
                            InputStream is=new ByteArrayInputStream(b); //读入InputStream
                            try {
                                    insNew= rtfToHtml(is); //将输入流转为HTML
                            } catch (IOException e) {
                                    e.printStackTrace();
                            }
                            try {
                                    insNew= new String(insNew.getBytes("Cp1252"), "GB2312"); //编码转换为GB2312
                                    insNew=convertText(insNew);        //提取元素标签并进行转换                                
                            } catch (UnsupportedEncodingException e) {
                                    e.printStackTrace();
                            }
                            try {
                                    is.close();
                            } catch (IOException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                            }
                            return insNew;                
                    }
            /***
             * 
             * @param in输入流
             * @return 输出String格式的HTML
             * @throws IOException
             */
            private static String rtfToHtml(InputStream in) throws IOException {
                JEditorPane p = new JEditorPane();
                p.setContentType("text/rtf");
               
                EditorKit kitRtf = p.getEditorKitForContentType("text/rtf");
                try {
                        kitRtf.read(in, p.getDocument(), 0); //inputstream转成文档
                    kitRtf = null;        
                    EditorKit kitHtml = p.getEditorKitForContentType("text/html");                 
                    Writer writer = new StringWriter();
                    kitHtml.write(writer, p.getDocument(), 0, p.getDocument().getLength()); 
                   
                    return writer.toString();
                } catch (BadLocationException e) {
                    e.printStackTrace();
                }
                return null;
            }
            /***
             * 
             * @param HTML格式的字串
             * @return 处理过的字串
             */
            private static String convertText(String text) {
                    if(text!=null) {
                            Document doc=Jsoup.parse(text); 
                            Elements links=doc.getElementsByTag("span");
                            StringBuffer buffer=new StringBuffer(); 
                                    for(Element link:links) {
                                            buffer.append(link.text().trim()+"<br />");
                                    }
                                    return buffer.toString().trim();
                    }
                    return null;
            }
    }
    

      

    1. package com.fr.function;
    2. import java.io.ByteArrayInputStream;
    3. import java.io.IOException;
    4. import java.io.InputStream;
    5. import java.io.StringWriter;
    6. import java.io.UnsupportedEncodingException;
    7. import java.io.Writer;
    8. import java.util.Arrays;
    9. import java.util.zip.DataFormatException;
    10. import java.util.zip.Inflater;
    11. import com.fr.data.core.db.*;
    12. import com.fr.script.AbstractFunction;
    13. import com.fr.stable.ArrayUtils;
    14. import com.fr.stable.Primitive;
    15. import javax.swing.JEditorPane;
    16. import javax.swing.text.BadLocationException;
    17. import javax.swing.text.EditorKit;
    18. import org.jsoup.Jsoup;
    19. import org.jsoup.nodes.Document;
    20. import org.jsoup.nodes.Element;
    21. import org.jsoup.select.Elements;
    22. public class getK3ZipRTF extends AbstractFunction{
    23.         private static final long serialVersionUID = 1L;
    24.         @Override
    25.         public Object run(Object[] args) {
    26.                 // TODO Auto-generated method stub
    27.                 if(ArrayUtils.getLength(args)!=1) {
    28.                         return Primitive.ERROR_VALUE;
    29.                 }                
    30.                 return getK3Rtf2Html((BinaryObject)args[0]);
    31.         }
    32.         /***
    33.          * 
    34.          * @param data 从数据库取得的IMAGE类型数据
    35.          * @return 解压后的字节数组
    36.          */
    37.         private static byte[] decompress(BinaryObject data) {
    38.                         byte[] bt=data.getBytes();
    39.                         Inflater decompresser=new Inflater(); //压缩对象
    40.                         decompresser.reset(); //清空对象数据
    41.                         decompresser.setInput(bt);//入入待解压二进制数
    42.                         int len=-1;
    43.                                 byte[] buf=new byte[1024];
    44.                                 try {
    45.                                         len=decompresser.inflate(buf); //解压后的数据写入字节数组,并获得数据长度
    46.                                 } catch (DataFormatException e) {
    47.                                         e.printStackTrace();
    48.                                 }
    49.                                 decompresser.end();                //结束解压
    50.                                 return Arrays.copyOf(buf,len); 
    51.                 }
    52.         private static String getK3Rtf2Html(BinaryObject ins)
    53.                 {
    54.                         String insNew=null;
    55.                         byte[] b=decompress(ins); //解压后的字节数组
    56.                         InputStream is=new ByteArrayInputStream(b); //读入InputStream
    57.                         try {
    58.                                 insNew= rtfToHtml(is); //将输入流转为HTML
    59.                         } catch (IOException e) {
    60.                                 e.printStackTrace();
    61.                         }
    62.                         try {
    63.                                 insNew= new String(insNew.getBytes("Cp1252"), "GB2312"); //编码转换为GB2312
    64.                                 insNew=convertText(insNew);        //提取元素标签并进行转换                                
    65.                         } catch (UnsupportedEncodingException e) {
    66.                                 e.printStackTrace();
    67.                         }
    68.                         try {
    69.                                 is.close();
    70.                         } catch (IOException e) {
    71.                                 // TODO Auto-generated catch block
    72.                                 e.printStackTrace();
    73.                         }
    74.                         return insNew;                
    75.                 }
    76.         /***
    77.          * 
    78.          * @param in输入流
    79.          * @return 输出String格式的HTML
    80.          * @throws IOException
    81.          */
    82.         private static String rtfToHtml(InputStream in) throws IOException {
    83.             JEditorPane p = new JEditorPane();
    84.             p.setContentType("text/rtf");
    85.            
    86.             EditorKit kitRtf = p.getEditorKitForContentType("text/rtf");
    87.             try {
    88.                     kitRtf.read(in, p.getDocument(), 0); //inputstream转成文档
    89.                 kitRtf = null;        
    90.                 EditorKit kitHtml = p.getEditorKitForContentType("text/html");                 
    91.                 Writer writer = new StringWriter();
    92.                 kitHtml.write(writer, p.getDocument(), 0, p.getDocument().getLength()); 
    93.                
    94.                 return writer.toString();
    95.             } catch (BadLocationException e) {
    96.                 e.printStackTrace();
    97.             }
    98.             return null;
    99.         }
    100.         /***
    101.          * 
    102.          * @param HTML格式的字串
    103.          * @return 处理过的字串
    104.          */
    105.         private static String convertText(String text) {
    106.                 if(text!=null) {
    107.                         Document doc=Jsoup.parse(text); 
    108.                         Elements links=doc.getElementsByTag("span");
    109.                         StringBuffer buffer=new StringBuffer(); 
    110.                                 for(Element link:links) {
    111.                                         buffer.append(link.text().trim()+"<br />");
    112.                                 }
    113.                                 return buffer.toString().trim();
    114.                 }
    115.                 return null;
    116.         }
    117. }
  • 相关阅读:
    windows本地提权——2003笔记
    Windows与linux添加用户命令
    反弹shell集锦
    提权-特权升级
    常见端口
    git泄露利用脚本
    Thinkphp5命令执行利用
    Thinkphp2.1漏洞利用
    打ms15-034补丁出现“此更新 不适用于您的计算机”
    Hyda爆破
  • 原文地址:https://www.cnblogs.com/liangyuwen/p/13130125.html
Copyright © 2011-2022 走看看