客户端对服务器端的pdf文件进行自动打印Word文件下载.docx
《客户端对服务器端的pdf文件进行自动打印Word文件下载.docx》由会员分享,可在线阅读,更多相关《客户端对服务器端的pdf文件进行自动打印Word文件下载.docx(51页珍藏版)》请在冰豆网上搜索。
thin:
@"
+urlIp+"
:
+sid;
con=DriverManager.getConnection(url,user,password);
returncon;
}
}
/**
*<
p>
*クラスの中に利用された定数。
/p>
*
*/
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="
\\batch\\config\\AutoPrint.conf"
publicstaticfinalStringSTARTTXTJIKANGSETE="
パスC:
/batch/tmpの配下のファイルlastTime.txtに日付時間を設定してください。
(日付時間のフォーマットはyy-MM-ddHH:
mm:
ss.SSSSSS)"
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
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!
pre.close();
if(conn!
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
returnfirstMaxTime;
publicList<
String[]>
getOutputpath(Connectionconn,
Stringhoyukansho_cdStr,Stringchohyo_idstr,StringmaxTimeStr,
StringpreviousTimeStr)throwsSQLException{
List<
outputpathList=newArrayList<
();
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("
sql=sql
andtazzm208.chohyo_idin(__IN_STRING__)"
}else{
selecttazzm208.outputpath,"
andto_char(tazzm208.shutsuryoku_date)>
?
pre.setString(1,maxTimeStr);
if(previousTimeStr!
=null){
pre.setString(2,previousTimeStr);
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);
returnoutputpathList;
/**
*@paramconn
*@paramchohyo_idp
*@paramshutsuryoku_date
*@return
*@throwsSQLException
publicStringgetCheckOutputpathResult(Connectionconn,
Stringchohyo_idparam,Stringshutsuryoku_dateparam)
throwsSQLException{
StringoutputpathStr=null;
selecttazzm208.outputpath"
wheretazzm208.chohyo_id=?
andto_char(tazzm208.shutsuryoku_date)=?
pre.setString(1,chohyo_idparam);
pre.setString(2,shutsuryoku_dateparam);
outputpathStr=outputpath;
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;
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;
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("
/batch/status"
Filefilestatus=newFile(status,"
status.txt"
checkoutputpathresult=newArrayList<
outputpathNotNull=newArrayList<
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{
inputstatus=newBufferedReader(newFileReader(filestatus));
StringstatusStr="
Stringstatusread=inputstatus.readLine();
if(statusread!
statusStr=statusread;
if("
500"
.equals(statusStr)){
inputstatus.close();
logger.info("
処理を中断する"
Ob