You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
435 lines
13 KiB
435 lines
13 KiB
package com.connor.pdf;
|
|
|
|
import java.awt.Color;
|
|
import java.io.BufferedReader;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import com.lowagie.text.DocumentException;
|
|
import com.lowagie.text.Rectangle;
|
|
import com.lowagie.text.pdf.BaseFont;
|
|
import com.lowagie.text.pdf.PdfContentByte;
|
|
import com.lowagie.text.pdf.PdfReader;
|
|
import com.lowagie.text.pdf.PdfStamper;
|
|
|
|
public class SignPdfLao {
|
|
public static void main(String[] args) {
|
|
int pageCount = 1;
|
|
SignPdfLao signPdf = new SignPdfLao();
|
|
|
|
String dataPath = args[0];
|
|
String pdfPath = args[1];
|
|
String outs = args[2];
|
|
|
|
// String dataPath = "C:\\Users\\infodba\\Desktop\\일各괜푯俚.txt";
|
|
// String pdfPath = "C:\\Users\\infodba\\Desktop\\일各괜PDF\\A4暠笭친겼.PDF";
|
|
// String outs = "C:\\Users\\infodba\\Desktop\\일各괜CAD渴놔\\A4暠笭친겼.PDF";
|
|
|
|
// String dataPath = "C:\\Users\\infodba\\Desktop\\일各괜푯俚.txt";
|
|
// String pdfPath = "C:\\Users\\infodba\\Desktop\\TC친겼CATIAPDF\\SHIBAO_A4_女_1.PDF";
|
|
// String outs = "C:\\Users\\infodba\\Desktop\\일各괜CAD渴놔\\SHIBAO_A4_女_1.PDF";
|
|
|
|
// String dataPath = "C:\\Users\\infodba\\Desktop\\일各괜푯俚.txt";
|
|
// String pdfPath = "C:\\Users\\infodba\\Desktop\\TC친겼CATIAPDF\\SHIBAO_SO_A4_女_1.PDF";
|
|
// String outs = "C:\\Users\\infodba\\Desktop\\일各괜CAD渴놔\\SHIBAO_SO_A4_女_1.PDF";
|
|
|
|
// String dataPath = "C:\\Users\\infodba\\Desktop\\일各괜푯俚.txt";
|
|
// String pdfPath = "C:\\Users\\infodba\\Desktop\\TC친겼CATIAPDF\\AA.PDF";
|
|
// String outs = "C:\\Users\\infodba\\Desktop\\일各괜CAD渴놔\\AA.PDF";
|
|
|
|
// String dataPath = "C:\\Users\\infodba\\Desktop\\일各괜푯俚.txt";
|
|
// String pdfPath = "C:\\Users\\infodba\\Desktop\\TC친겼CATIAPDF\\A4暠笭친겼.PDF";
|
|
// String outs = "C:\\Users\\infodba\\Desktop\\일各괜CAD渴놔\\A4暠笭친겼.PDF";
|
|
|
|
Map<String, String> dataMap = signPdf.getData(dataPath);
|
|
try {
|
|
System.out.println("=====역迦푯俚=====");
|
|
|
|
PdfReader reader = new PdfReader(pdfPath);
|
|
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outs));
|
|
Rectangle rectangle = reader.getPageSize(1);
|
|
Float[] fposition = signPdf.getSize(rectangle);
|
|
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", true);
|
|
float x1 = 0.0F;
|
|
float x2 = 0.0F;
|
|
float x3 = 0.0F;
|
|
float x4 = 0.0F;
|
|
float y1 = 0.0F;
|
|
float y2 = 0.0F;
|
|
float y3 = 0.0F;
|
|
float y4 = 0.0F;
|
|
if (fposition[0] == 2384.0F && fposition[1] == 3370.0F) { // A0
|
|
x1 = 2870.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 2900.0F;
|
|
x3 = 2971.0F;
|
|
x4 = 3003.0F;
|
|
} else if (fposition[0] == 2384.0F && fposition[1] == 1684.0F) { // A1
|
|
x1 = 1885.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 1913.0F;
|
|
x3 = 1985.0F;
|
|
x4 = 2016.0F;
|
|
} else if (fposition[0] == 1684.0F && fposition[1] == 1191.0F) { // A2
|
|
x1 = 1183.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 1214.0F;
|
|
x3 = 1285.0F;
|
|
x4 = 1316.0F;
|
|
} else if (fposition[0] == 1191.0F && fposition[1] == 842.0F) { // A3
|
|
x1 = 703.0F;
|
|
y1 = 48.0F;
|
|
y2 = 34.0F;
|
|
y3 = 20.0F;
|
|
y4 = 6.0F;
|
|
x2 = 735.0F;
|
|
x3 = 805.0F;
|
|
x4 = 837.0F;
|
|
} else if (fposition[0] == 842.0F && fposition[1] == 595.0F) { // A4
|
|
x1 = 110.0F;
|
|
y1 = 48.0F;
|
|
y2 = 34.0F;
|
|
y3 = 20.0F;
|
|
y4 = 6.0F;
|
|
x2 = 142.0F;
|
|
x3 = 213.0F;
|
|
x4 = 243.0F;
|
|
} else if (fposition[0] == 3370.4F && fposition[1] == 2383.94F) { // CATIA A0
|
|
x1 = 2870.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 2902.0F;
|
|
x3 = 2971.0F;
|
|
x4 = 3003.0F;
|
|
} else if (fposition[0] == 2383.94F && fposition[1] == 1683.78F) { // CATIA A1
|
|
x1 = 1885.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 1914.0F;
|
|
x3 = 1986.0F;
|
|
x4 = 2017.0F;
|
|
} else if (fposition[0] == 1683.78F && fposition[1] == 1190.56F) { // CATIA A2
|
|
x1 = 1183.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 1214.0F;
|
|
x3 = 1285.0F;
|
|
x4 = 1316.0F;
|
|
} else if (fposition[0] == 1190.56F && fposition[1] == 841.89F) { // CATIA A3
|
|
x1 = 703.0F;
|
|
y1 = 48.0F;
|
|
y2 = 34.0F;
|
|
y3 = 20.0F;
|
|
y4 = 6.0F;
|
|
x2 = 735.0F;
|
|
x3 = 805.0F;
|
|
x4 = 837.0F;
|
|
} else if (fposition[0] == 595.28F && fposition[1] == 841.89F) { // CATIA A4
|
|
x1 = 110.0F;
|
|
y1 = 48.0F;
|
|
y2 = 34.0F;
|
|
y3 = 20.0F;
|
|
y4 = 6.0F;
|
|
x2 = 142.0F;
|
|
x3 = 213.0F;
|
|
x4 = 243.0F;
|
|
} else if (fposition[0] == 5054.18F && fposition[1] == 2383.94F) { // CATIA S0 A0
|
|
x1 = 4554.0F;
|
|
y1 = 61.0F;
|
|
y2 = 47.0F;
|
|
y3 = 33.0F;
|
|
y4 = 19.0F;
|
|
x2 = 4585.5F;
|
|
x3 = 4585.5F;
|
|
x4 = 4585.5F;
|
|
} else if (fposition[0] == 6740.79F && fposition[1] == 2383.94F) { // CATIA S0 A1
|
|
x1 = 6240.0F;
|
|
y1 = 61.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 6272.0F;
|
|
x3 = 6272.0F;
|
|
x4 = 6272.0F;
|
|
} else if (fposition[0] == 8424.57F && fposition[1] == 2383.94F) { // CATIA S0 A2
|
|
x1 = 7925.0F;
|
|
y1 = 60.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 7957.0F;
|
|
x3 = 7957.0F;
|
|
x4 = 7957.0F;
|
|
} else if (fposition[0] == 10111.19F && fposition[1] == 2383.94F) { // CATIA S0 A3
|
|
x1 = 9614.0F;
|
|
y1 = 60.0F;
|
|
y2 = 46.0F;
|
|
y3 = 32.0F;
|
|
y4 = 18.0F;
|
|
x2 = 9643.0F;
|
|
x3 = 9643.0F;
|
|
x4 = 9643.0F;
|
|
} else if (fposition[0] == 11794.97F && fposition[1] == 2383.94F) { // CATIA S0 A4
|
|
x1 = 11295.0F;
|
|
y1 = 60.0F;
|
|
y2 = 46.0F;
|
|
y3 = 32.0F;
|
|
y4 = 18.0F;
|
|
x2 = 11327.0F;
|
|
x3 = 11327.0F;
|
|
x4 = 11327.0F;
|
|
} else if (fposition[0] == 1684.0F && fposition[1] == 2384.0F) { // A1
|
|
x1 = 1885.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 1913.0F;
|
|
x3 = 1985.0F;
|
|
x4 = 2016.0F;
|
|
} else if (fposition[0] == 1191.0F && fposition[1] == 1684.0F) { // A2
|
|
x1 = 1183.0F;
|
|
y1 = 62.0F;
|
|
y2 = 48.0F;
|
|
y3 = 34.0F;
|
|
y4 = 20.0F;
|
|
x2 = 1214.0F;
|
|
x3 = 1285.0F;
|
|
x4 = 1316.0F;
|
|
} else if (fposition[0] == 842.0F && fposition[1] == 1191.0F) { // A3
|
|
x1 = 703.0F;
|
|
y1 = 48.0F;
|
|
y2 = 34.0F;
|
|
y3 = 20.0F;
|
|
y4 = 6.0F;
|
|
x2 = 735.0F;
|
|
x3 = 805.0F;
|
|
x4 = 837.0F;
|
|
} else if (fposition[0] == 595.0F && fposition[1] == 842.0F) { // A4
|
|
x1 = 110.0F;
|
|
y1 = 48.0F;
|
|
y2 = 34.0F;
|
|
y3 = 20.0F;
|
|
y4 = 6.0F;
|
|
x2 = 142.0F;
|
|
x3 = 213.0F;
|
|
x4 = 243.0F;
|
|
}
|
|
|
|
if (dataMap.containsKey("긍齡")) {
|
|
String value = (String) dataMap.get("긍齡");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 9.0F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x1).floatValue(), Float.valueOf(y1).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
// signPdf.signBZ(pageCount, value, content, reader, stamper, Integer.valueOf(275));
|
|
}
|
|
if (dataMap.containsKey("叫뚤")) {
|
|
String value = (String) dataMap.get("叫뚤");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 9.0F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x1).floatValue(), Float.valueOf(y2).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
// signPdf.signBZ(pageCount, value, content, reader, stamper, Integer.valueOf(476));
|
|
}
|
|
if (dataMap.containsKey("삔푯")) {
|
|
String value = (String) dataMap.get("삔푯");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 9.0F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x1).floatValue(), Float.valueOf(y3).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
}
|
|
if (dataMap.containsKey("툽硫")) {
|
|
String value = (String) dataMap.get("툽硫");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 9.0F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x1).floatValue(), Float.valueOf(y4).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
}
|
|
|
|
if (dataMap.containsKey("긍齡휑퍅")) {
|
|
String value = (String) dataMap.get("긍齡휑퍅");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 6.2F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x2).floatValue(), Float.valueOf(y1).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
}
|
|
if (dataMap.containsKey("叫뚤휑퍅")) {
|
|
String value = (String) dataMap.get("叫뚤휑퍅");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 6.2F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x2).floatValue(), Float.valueOf(y2).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
}
|
|
if (dataMap.containsKey("삔푯휑퍅")) {
|
|
String value = (String) dataMap.get("삔푯휑퍅");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 6.2F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x2).floatValue(), Float.valueOf(y3).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
}
|
|
if (dataMap.containsKey("툽硫휑퍅")) {
|
|
String value = (String) dataMap.get("툽硫휑퍅");
|
|
PdfContentByte content = stamper.getUnderContent(1);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 6.2F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(x2).floatValue(), Float.valueOf(y4).floatValue());
|
|
content.showText(value);
|
|
content.endText();
|
|
}
|
|
|
|
stamper.close();
|
|
reader.close();
|
|
System.out.println("=====푯俚써監=====");
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public Map<String, String> getData(String filePath) {
|
|
String lineTxt = "";
|
|
Map<String, String> dataMap = new HashMap<>();
|
|
try {
|
|
String encoding = "GBK";
|
|
File file = new File(filePath);
|
|
if ((file.isFile()) && (file.exists())) {
|
|
InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);
|
|
BufferedReader bufferedReader = new BufferedReader(read);
|
|
lineTxt = bufferedReader.readLine();
|
|
System.out.println("linttxt=======" + lineTxt);
|
|
|
|
read.close();
|
|
} else {
|
|
System.out.println("冷꼇돕寧땍돨匡숭");
|
|
}
|
|
} catch (Exception e) {
|
|
System.out.println("뗍혤匡숭코휭놔댄");
|
|
e.printStackTrace();
|
|
}
|
|
String[] dataList = null;
|
|
if ((lineTxt != null) && (lineTxt.length() > 0) && (lineTxt.split("\\|") != null))
|
|
dataList = lineTxt.split("\\|");
|
|
else {
|
|
dataList[0] = "";
|
|
}
|
|
for (int i = 0; i < dataList.length; i++) {
|
|
System.out.println("dataList=======" + dataList[i]);
|
|
String[] datas = null;
|
|
datas = dataList[i].split("=");
|
|
if ((datas != null) && (datas.length > 1)) {
|
|
dataMap.put(datas[0], datas[1]);
|
|
}
|
|
}
|
|
|
|
return dataMap;
|
|
}
|
|
|
|
public Float[] getSize(Rectangle rectangle) {
|
|
Float[] sizef = new Float[2];
|
|
float toleft = rectangle.getLeft();
|
|
float tobottom = rectangle.getBottom();
|
|
float toright = rectangle.getRight();
|
|
float totop = rectangle.getTop();
|
|
|
|
JFomPdfBean bean = new JFomPdfBean();
|
|
bean.setH(Float.valueOf(toright - toleft));
|
|
bean.setW(Float.valueOf(totop - tobottom));
|
|
sizef[0] = bean.getH();
|
|
sizef[1] = bean.getW();
|
|
System.out.println("bean.getH------------>................." + bean.getH());
|
|
System.out.println("bean.getW------------>................." + bean.getW());
|
|
|
|
return sizef;
|
|
}
|
|
|
|
public void signBZ(int pageCount, String value, PdfContentByte content, PdfReader reader, PdfStamper stamper,
|
|
Integer x) {
|
|
for (int i = 2; i <= pageCount; i++) {
|
|
int width = x.intValue();
|
|
SignPdfLao pdf = new SignPdfLao();
|
|
Rectangle rectangle = reader.getPageSize(i);
|
|
System.out.println("=========뒤" + i + "女=========");
|
|
Float[] fposition = pdf.getSize(rectangle);
|
|
try {
|
|
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", true);
|
|
String[] values = value.split(" ");
|
|
if (values != null)
|
|
for (int j = 0; j < values.length; j++) {
|
|
content = stamper.getUnderContent(i);
|
|
content.beginText();
|
|
content.setColorFill(Color.BLACK);
|
|
content.setFontAndSize(base, 11.0F);
|
|
content.setTextRise(14.0F);
|
|
content.setTextMatrix(Float.valueOf(width).floatValue(), Float.valueOf(30.0F).floatValue());
|
|
content.showText(values[j]);
|
|
content.endText();
|
|
width += 63;
|
|
}
|
|
} catch (DocumentException e) {
|
|
e.printStackTrace();
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |