|
|
|
@ -2,6 +2,7 @@ package com.dsic.gj_erp;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
import cn.hutool.core.date.TimeInterval;
|
|
|
|
import cn.hutool.core.date.TimeInterval;
|
|
|
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
|
|
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
|
|
|
import cn.hutool.extra.qrcode.QrConfig;
|
|
|
|
import cn.hutool.extra.qrcode.QrConfig;
|
|
|
|
import com.google.zxing.BarcodeFormat;
|
|
|
|
import com.google.zxing.BarcodeFormat;
|
|
|
|
@ -19,10 +20,17 @@ import java.awt.geom.Rectangle2D;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
public class Test {
|
|
|
|
public class Test {
|
|
|
|
public static void main(String[] args) throws IOException {
|
|
|
|
public static void main(String[] args) throws IOException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> gbk = FileUtil.readLines("D:\\T300K-132_400_erp0909\\T300K-132_400批量型材统计数据_7跨.XC", "GBK");
|
|
|
|
|
|
|
|
System.out.println(gbk);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<String> gbk1 = FileUtil.readLines("D:\\T300K-132_400_erp0909\\T300K-132_400批量数控板材统计数据_4跨.BC", "GBK");
|
|
|
|
|
|
|
|
System.out.println(gbk1);
|
|
|
|
|
|
|
|
|
|
|
|
// System.out.println(DateUtil.thisYear());
|
|
|
|
// System.out.println(DateUtil.thisYear());
|
|
|
|
|
|
|
|
|
|
|
|
// System.out.println(StrUtil.padPre("1",3,"0"));
|
|
|
|
// System.out.println(StrUtil.padPre("1",3,"0"));
|
|
|
|
@ -32,17 +40,17 @@ public class Test {
|
|
|
|
//System.out.println("aaa = " + String.format("%03d",1));
|
|
|
|
//System.out.println("aaa = " + String.format("%03d",1));
|
|
|
|
// MatrixToImageWriter.
|
|
|
|
// MatrixToImageWriter.
|
|
|
|
|
|
|
|
|
|
|
|
TimeInterval timer = DateUtil.timer();
|
|
|
|
// TimeInterval timer = DateUtil.timer();
|
|
|
|
String pdfFilePath = "E:\\B058HC104HN第058批量龙门套料图2023-07-20.pdf"; // PDF文件路径
|
|
|
|
// String pdfFilePath = "E:\\B058HC104HN第058批量龙门套料图2023-07-20.pdf"; // PDF文件路径
|
|
|
|
PDDocument document = PDDocument.load(new File(pdfFilePath));
|
|
|
|
// PDDocument document = PDDocument.load(new File(pdfFilePath));
|
|
|
|
// PDFTextStripper stripper = new PDFTextStripper();
|
|
|
|
// PDFTextStripper stripper = new PDFTextStripper();
|
|
|
|
// String text = stripper.getText(document);
|
|
|
|
// String text = stripper.getText(document);
|
|
|
|
// String[] split = text.split("\\n");
|
|
|
|
// String[] split = text.split("\\n");
|
|
|
|
|
|
|
|
|
|
|
|
// List<QrCodeDto> list = new ArrayList<>();
|
|
|
|
// List<QrCodeDto> list = new ArrayList<>();
|
|
|
|
QrConfig config = new QrConfig(300, 300);//二维码宽/高
|
|
|
|
// QrConfig config = new QrConfig(300, 300);//二维码宽/高
|
|
|
|
// 设置边距,既二维码和背景之间的边距(即白边大小)
|
|
|
|
// 设置边距,既二维码和背景之间的边距(即白边大小)
|
|
|
|
config.setMargin(0);
|
|
|
|
// config.setMargin(0);
|
|
|
|
// 设置前景色,既二维码颜色(青色)
|
|
|
|
// 设置前景色,既二维码颜色(青色)
|
|
|
|
//config.setForeColor(Color.CYAN.getRGB());
|
|
|
|
//config.setForeColor(Color.CYAN.getRGB());
|
|
|
|
// 设置背景色(灰色)
|
|
|
|
// 设置背景色(灰色)
|
|
|
|
@ -80,25 +88,25 @@ public class Test {
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
for (int pageNumber = 1; pageNumber < document.getNumberOfPages(); ++pageNumber) {
|
|
|
|
// for (int pageNumber = 1; pageNumber < document.getNumberOfPages(); ++pageNumber) {
|
|
|
|
PDPage page = document.getPage(pageNumber);
|
|
|
|
// PDPage page = document.getPage(pageNumber);
|
|
|
|
String textByRegion = getTextByRegion(page, 80, 50, 1100, 40);
|
|
|
|
// String textByRegion = getTextByRegion(page, 80, 50, 1100, 40);
|
|
|
|
// System.out.println(textByRegion);
|
|
|
|
//// System.out.println(textByRegion);
|
|
|
|
String[] split = textByRegion.split(" ");
|
|
|
|
// String[] split = textByRegion.split(" ");
|
|
|
|
String dcch = split[1];
|
|
|
|
// String dcch = split[1];
|
|
|
|
String dcpl = split[3];
|
|
|
|
// String dcpl = split[3];
|
|
|
|
String tzbh = split[7];
|
|
|
|
// String tzbh = split[7];
|
|
|
|
String pageIndex = split[12];
|
|
|
|
// String pageIndex = split[12];
|
|
|
|
BufferedImage bufferedImage = QrCodeUtil.generate(String.format("%s_%s_%s", dcch, dcpl, tzbh), config);
|
|
|
|
// BufferedImage bufferedImage = QrCodeUtil.generate(String.format("%s_%s_%s", dcch, dcpl, tzbh), config);
|
|
|
|
PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
|
|
|
|
// PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
|
|
|
|
PDImageXObject qrCodeImage = JPEGFactory.createFromImage(document, bufferedImage);
|
|
|
|
// PDImageXObject qrCodeImage = JPEGFactory.createFromImage(document, bufferedImage);
|
|
|
|
contentStream.drawImage(qrCodeImage, 10, 10, 75, 75); // 在PDF中的坐标位置添加二维码
|
|
|
|
// contentStream.drawImage(qrCodeImage, 10, 10, 75, 75); // 在PDF中的坐标位置添加二维码
|
|
|
|
contentStream.close();
|
|
|
|
// contentStream.close();
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
document.save("E:/updated_document.pdf");
|
|
|
|
// document.save("E:/updated_document.pdf");
|
|
|
|
document.close();
|
|
|
|
// document.close();
|
|
|
|
System.out.println(timer.interval());
|
|
|
|
// System.out.println(timer.interval());
|
|
|
|
// 输出提取的文本到控制台
|
|
|
|
// 输出提取的文本到控制台
|
|
|
|
// System.out.println(text);
|
|
|
|
// System.out.println(text);
|
|
|
|
|
|
|
|
|
|
|
|
|