客户端对服务器端的pdf文件进行自动打印.docx
- 文档编号:9340487
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:51
- 大小:42.86KB
客户端对服务器端的pdf文件进行自动打印.docx
《客户端对服务器端的pdf文件进行自动打印.docx》由会员分享,可在线阅读,更多相关《客户端对服务器端的pdf文件进行自动打印.docx(51页珍藏版)》请在冰豆网上搜索。
客户端对服务器端的pdf文件进行自动打印
需要的包有
commons-codec-1.6.jar
commons-logging-1.1.3.jar
httpclient-4.3.3.jar
httpclient-cache-4.3.3.jar
httpcore-4.3.2.jar
httpmime-4.3.3.jar
log4j-1.2.15.jar
ojdbc6.jar
pdfbox-app-1.8.5.jar
代码如下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjavax.swing.JOptionPane;
publicclassConnOracle{
publicstaticConnectiongetConnectionOracle(Stringuser,Stringpassword,
StringurlIp,Stringsid)throwsClassNotFoundException,
SQLException{
Connectioncon=null;
Class.forName("oracle.jdbc.driver.OracleDriver");
Stringurl="jdbc:
oracle:
"+"thin:
@"+urlIp+":
"+sid;
con=DriverManager.getConnection(url,user,password);
returncon;
}
}
/**
*
*クラスの中に利用された定数。
*
*
*/
publicclassConstants{
publicstaticfinalStringTYOUHYOU_ID="TYOUHYOU_ID";
publicstaticfinalStringRIYOUKANNSYO_CD="RIYOUKANNSYO_CD";
publicstaticfinalStringLOCAL_PDF_BASYO="LOCAL_PDF_BASYO";
publicstaticfinalStringSERVER_PDF_BASYO="SERVER_PDF_BASYO";
publicstaticfinalStringDB_USER_ID="DB_USER_ID";
publicstaticfinalStringDB_SID="DB_SID";
publicstaticfinalStringDB_PASSWORD="DB_PASSWORD";
publicstaticfinalStringDB_URL="DB_URL";
publicstaticfinalStringTAJYUUKIDOU_ERROR="多重起動エラー:
要確認";
publicstaticfinalStringSONOTA="sonota";
publicstaticfinalStringSONOTA_UNCOMP="sonota_uncomp";
publicstaticfinalStringTYOUHYOUJIDOUSYUTURYOKU="帳票自動出力処理を実行しました";
publicstaticfinalStringTEYIJI="提示";
publicstaticfinalStringHOUTEI="houtei";
publicstaticfinalStringHOUTEI_UNCOMP="houtei_uncomp";
publicstaticfinalStringPDF="pdf";
publicstaticfinalStringJPG=".jpg";
publicstaticfinalStringC_PATH_TMP="C:
/batch/tmp";
publicstaticfinalStringLOG_FILE="lastTime.txt";
publicstaticfinalStringSTART_FILE="start.txt";
publicstaticfinalStringDB_ERROR="DBと接続する時コネクションエラーを発生しました";
publicstaticfinalStringINTERNET_ERROR="サーバと接続することができない";
publicstaticfinalStringPRINT_ERROR="ローカルのパソコンがプリンタと接続せず、自動印刷処理は中断されました。
";
publicstaticfinalStringJIDOUPRINT_ERROR="自動印刷処理が中断された";
publicstaticfinalStringPDFPRINT_ERROR="PDFを印刷している途中にエラーが発生しました";
publicstaticfinalStringPRINT_IP="PRINT_IP";
publicstaticfinalStringAPP_INTERVAL="APP_INTERVAL";
publicstaticfinalStringPROFILEPATH="C:
\\batch\\config\\AutoPrint.conf";
publicstaticfinalStringSTARTTXTJIKANGSETE="パスC:
/batch/tmpの配下のファイルlastTime.txtに日付時間を設定してください。
(日付時間のフォーマットはyy-MM-ddHH:
mm:
ss.SSSSSS)";
}
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Timestamp;
importjava.util.ArrayList;
importjava.util.List;
publicclassDao{
publicStringgetFirstMaxTime(Connectionconn,Stringhoyukansho_cdStr,
Stringchohyo_idstr)throwsSQLException{
StringfirstMaxTime=null;
PreparedStatementpre=null;
ResultSetresult=null;
Stringsql="selectmax(to_char(tazzm208.shutsuryoku_date))"
+"fromtazzm208"
+"wheretazzm208.hoyukansho_cdin(__IN_STRING2__)"
.replaceFirst("__IN_STRING2__",hoyukansho_cdStr);
sql=sql
+"andtazzm208.chohyo_idin(__IN_STRING__)".replaceFirst(
"__IN_STRING__",chohyo_idstr);
try{
pre=conn.prepareStatement(sql);
result=pre.executeQuery();
while(result.next()){
firstMaxTime=result.getString
(1);
}
}finally{
try{
if(result!
=null)
result.close();
if(pre!
=null)
pre.close();
if(conn!
=null)
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnfirstMaxTime;
}
publicList
Stringhoyukansho_cdStr,Stringchohyo_idstr,StringmaxTimeStr,
StringpreviousTimeStr)throwsSQLException{
PreparedStatementpre=null;
ResultSetresult=null;
Stringsql="";
List
if(previousTimeStr==null){
sql="selecttazzm208.outputpath,"
+"tazzm208.chohyo_id,"
+"to_char(tazzm208.shutsuryoku_date)"
+"fromtazzm208"
+"whereto_char(tazzm208.shutsuryoku_date)<=?
"
+"andtazzm208.hoyukansho_cdin(__IN_STRING2__)"
.replaceFirst("__IN_STRING2__",hoyukansho_cdStr);
sql=sql
+"andtazzm208.chohyo_idin(__IN_STRING__)"
.replaceFirst("__IN_STRING__",chohyo_idstr);
}else{
sql="selecttazzm208.outputpath,"
+"tazzm208.chohyo_id,"
+"to_char(tazzm208.shutsuryoku_date)"
+"fromtazzm208"
+"whereto_char(tazzm208.shutsuryoku_date)<=?
"
+"andto_char(tazzm208.shutsuryoku_date)>?
"
+"andtazzm208.hoyukansho_cdin(__IN_STRING2__)"
.replaceFirst("__IN_STRING2__",hoyukansho_cdStr);
sql=sql
+"andtazzm208.chohyo_idin(__IN_STRING__)"
.replaceFirst("__IN_STRING__",chohyo_idstr);
}
try{
pre=conn.prepareStatement(sql);
pre.setString(1,maxTimeStr);
if(previousTimeStr!
=null){
pre.setString(2,previousTimeStr);
}
result=pre.executeQuery();
while(result.next()){
Stringoutputpath=result.getString
(1);
Stringchohyo_id=result.getString
(2);
Stringshutsuryoku_date=result.getString(3);
String[]record=newString[3];
record[0]=outputpath;
record[1]=chohyo_id;
record[2]=shutsuryoku_date;
outputpathList.add(record);
}
}finally{
try{
if(result!
=null)
result.close();
if(pre!
=null)
pre.close();
if(conn!
=null)
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnoutputpathList;
}
/**
*
*@paramconn
*@paramchohyo_idp
*@paramshutsuryoku_date
*@return
*@throwsSQLException
*/
publicStringgetCheckOutputpathResult(Connectionconn,
Stringchohyo_idparam,Stringshutsuryoku_dateparam)
throwsSQLException{
PreparedStatementpre=null;
ResultSetresult=null;
StringoutputpathStr=null;
Stringsql="selecttazzm208.outputpath"
+"fromtazzm208"
+"wheretazzm208.chohyo_id=?
"
+"andto_char(tazzm208.shutsuryoku_date)=?
";
try{
pre=conn.prepareStatement(sql);
pre.setString(1,chohyo_idparam);
pre.setString(2,shutsuryoku_dateparam);
result=pre.executeQuery();
while(result.next()){
Stringoutputpath=result.getString
(1);
outputpathStr=outputpath;
}
}finally{
try{
if(result!
=null)
result.close();
if(pre!
=null)
pre.close();
if(conn!
=null)
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
returnoutputpathStr;
}
}
importjava.awt.image.BufferedImage;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.InputStream;
import.ConnectException;
importjava.sql.Connection;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importjavax.imageio.ImageIO;
importjavax.print.Doc;
importjavax.print.DocFlavor;
importjavax.print.DocPrintJob;
importjavax.print.PrintException;
importjavax.print.PrintService;
importjavax.print.PrintServiceLookup;
importjavax.print.SimpleDoc;
importjavax.print.attribute.DocAttributeSet;
importjavax.print.attribute.HashDocAttributeSet;
importjavax.print.attribute.HashPrintRequestAttributeSet;
importjavax.print.attribute.standard.MediaPrintableArea;
importjavax.print.attribute.standard.MediaSizeName;
importjavax.print.attribute.standard.OrientationRequested;
importjavax.swing.JOptionPane;
importorg.apache.http.HttpResponse;
importorg.apache.http.StatusLine;
importorg.apache.http.client.ClientProtocolException;
importorg.apache.http.client.HttpClient;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.log4j.Logger;
importorg.apache.pdfbox.pdmodel.PDDocument;
importorg.apache.pdfbox.pdmodel.PDPage;
publicclassMyThreadextendsThread{
booleanprintFlag=false;
privatestaticLoggerlogger=Logger.getLogger(MyThread.class);
publicvoidrun(){
BufferedWriterbw=null;
BufferedReaderinput=null;
BufferedReaderinputstatus=null;
Filestatus=newFile("C:
/batch/status");
Filefilestatus=newFile(status,"status.txt");
List
List
logger.info("二重起動チェック");
//②二重起動チェック
// 1.以下のファイルが存在するかチェックし、存在する場合は二重起動と見なしてエラーメッセージを表示し、処理を中断する
// 二重起動チェックファイル:
【ルートフォルダ】\tmp\start.txt
Filefilepathstart=newFile(Constants.C_PATH_TMP);
Filefilestart=newFile(filepathstart,Constants.START_FILE);
if(filestart.exists()){
logger.info("*******************二重起動*******************");
//エラーメッセージを表示し、処理を中断する
//エラーメッセージ:
”多重起動エラー:
要確認”
Object[]options={"OK"};
JOptionPane.showOptionDialog(null,Constants.TAJYUUKIDOU_ERROR,
Constants.TEYIJI,JOptionPane.OK_OPTION,
JOptionPane.INFORMATION_MESSAGE,null,options,options[0]);
System.exit(0);
}
while(true){
try{
try{
inputstatus=newBufferedReader(newFileReader(filestatus));
StringstatusStr="";
Stringstatusread=inputstatus.readLine();
if(statusread!
=null){
statusStr=statusread;
if("500".equals(statusStr)){
inputstatus.close();
logger.info("処理を中断する");
Ob
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 客户端 服务器端 pdf 文件 进行 自动 打印
![提示](https://static.bdocx.com/images/bang_tan.gif)