|
|
|
@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.io.*;
|
|
|
|
import java.io.*;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.net.URL;
|
|
|
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.Iterator;
|
|
|
|
import java.util.Iterator;
|
|
|
|
@ -285,73 +286,73 @@ public class Jpg2PdfUtil {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static void mulFile2One3(HttpServletResponse response, List<String> filePaths, String filename, EmrPdfWaterSet emrPdfWaterSet) {
|
|
|
|
public static void mulFile2One3(HttpServletResponse response,List<String> filePaths,String filename) {
|
|
|
|
String waterMarkName = "";
|
|
|
|
String waterMarkName="";
|
|
|
|
SimpleDateFormat fmt= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
//遍历删除,除去损坏,文件不存在,抛异常就是空白页
|
|
|
|
//遍历删除,除去损坏,文件不存在,抛异常就是空白页
|
|
|
|
Iterator<String> iterator = filePaths.iterator();
|
|
|
|
Iterator<String> iterator = filePaths.iterator();
|
|
|
|
while (iterator.hasNext()) {
|
|
|
|
while (iterator.hasNext()) {
|
|
|
|
String fileStr = iterator.next();
|
|
|
|
String fileStr = iterator.next();
|
|
|
|
File file = new File(fileStr);
|
|
|
|
File file = new File(fileStr);
|
|
|
|
if (file.isFile()) {
|
|
|
|
if(file.isFile()){
|
|
|
|
boolean flag = check(fileStr);
|
|
|
|
boolean flag = check(fileStr);
|
|
|
|
if (!flag) {
|
|
|
|
if(!flag){
|
|
|
|
iterator.remove();
|
|
|
|
iterator.remove();
|
|
|
|
System.out.println(fmt.format(new Date()) + ":" + file + "文件损坏");
|
|
|
|
System.out.println(fmt.format(new Date())+":"+file+"文件损坏");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
}else{
|
|
|
|
iterator.remove();
|
|
|
|
iterator.remove();
|
|
|
|
System.out.println(fmt.format(new Date()) + ":" + file + "文件不存在");
|
|
|
|
System.out.println(fmt.format(new Date())+":"+file+"文件不存在");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!filePaths.isEmpty()) {
|
|
|
|
if(!filePaths.isEmpty()){
|
|
|
|
// pdf合并工具类
|
|
|
|
// pdf合并工具类
|
|
|
|
Document document = null;
|
|
|
|
Document document = null;
|
|
|
|
PdfCopy copy = null;
|
|
|
|
PdfCopy copy = null;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
filename = java.net.URLEncoder.encode(filename, "UTF-8");
|
|
|
|
filename = URLEncoder.encode(filename, "UTF-8");
|
|
|
|
response.reset();
|
|
|
|
response.reset();
|
|
|
|
response.setCharacterEncoding("utf-8");
|
|
|
|
response.setCharacterEncoding("utf-8");
|
|
|
|
response.setContentType("application/pdf");
|
|
|
|
response.setContentType("application/pdf");
|
|
|
|
response.setHeader("Content-Disposition", "attachment; filename=" + filename + ".pdf");
|
|
|
|
response.setHeader("Content-Disposition", "attachment; filename=" + filename + ".pdf");
|
|
|
|
document = new Document(new PdfReader(filePaths.get(0)).getPageSize(1));
|
|
|
|
document = new Document(new PdfReader(filePaths.get(0)).getPageSize(1));
|
|
|
|
copy = new PdfCopy(document, response.getOutputStream());
|
|
|
|
copy = new PdfCopy(document,response.getOutputStream());
|
|
|
|
document.open();
|
|
|
|
document.open();
|
|
|
|
for (String file : filePaths) {
|
|
|
|
for (String file : filePaths) {
|
|
|
|
PdfReader reader = new PdfReader(file);
|
|
|
|
PdfReader reader = new PdfReader(file);
|
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
|
|
|
PdfReader pdfReader = null;
|
|
|
|
PdfReader pdfReader = null;
|
|
|
|
//判断是否加水印
|
|
|
|
//判断是否加水印
|
|
|
|
if (emrPdfWaterSet.getDownloadEffective() == 1) {
|
|
|
|
if (StringUtils.isNotBlank(waterMarkName)) {
|
|
|
|
setWatermark(bos, reader, emrPdfWaterSet.getText(), null);
|
|
|
|
setWatermark(bos, reader, waterMarkName, null);
|
|
|
|
pdfReader = new PdfReader(bos.toByteArray());
|
|
|
|
pdfReader = new PdfReader(bos.toByteArray());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int n = reader.getNumberOfPages();
|
|
|
|
int n = reader.getNumberOfPages();
|
|
|
|
for (int j = 1; j <= n; j++) {
|
|
|
|
for (int j = 1; j <= n; j++) {
|
|
|
|
document.newPage();
|
|
|
|
document.newPage();
|
|
|
|
PdfImportedPage page = null;
|
|
|
|
PdfImportedPage page = null;
|
|
|
|
if (emrPdfWaterSet.getDownloadEffective() == 1) {
|
|
|
|
if (StringUtils.isNotBlank(waterMarkName)) {
|
|
|
|
page = copy.getImportedPage(pdfReader, j);
|
|
|
|
page = copy.getImportedPage(pdfReader, j);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
page = copy.getImportedPage(reader, j);
|
|
|
|
page = copy.getImportedPage(reader, j);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
copy.addPage(page);
|
|
|
|
copy.addPage(page);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (null != pdfReader) {
|
|
|
|
if(null != pdfReader){
|
|
|
|
pdfReader.close();
|
|
|
|
pdfReader.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
reader.close();
|
|
|
|
reader.close();
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
bos.flush();
|
|
|
|
bos.flush();
|
|
|
|
bos.close();
|
|
|
|
bos.close();
|
|
|
|
} catch (Exception e) {
|
|
|
|
}catch (Exception e){
|
|
|
|
//e.printStackTrace();
|
|
|
|
//e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
}catch (Exception e){
|
|
|
|
//e.printStackTrace();
|
|
|
|
//e.printStackTrace();
|
|
|
|
} finally {
|
|
|
|
}finally {
|
|
|
|
if (null != document) {
|
|
|
|
if(null != document){
|
|
|
|
document.close();
|
|
|
|
document.close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|