Flask接口签名sign原理与实例代码浅析
465
2023-02-20
java PDF添加图层的方法 支持多页图层添加
java PDF添加图层,支持多页图层添加,具体如下
代码:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamhttp://per;
public class PdfUtils {
/**
* PDF添加图层
*
* @param srcPdf
* 原PDF文件路径
* @param distPdf
* 合成PDF输出路径
* @param layerPathArr
* 图层路径列表,图层名称需为数字(按照图片名称数字顺序合成在PDF对应页数上)
* @return
* @throws IOException
* @throws DocumentException
*/
public static String markLocalImage42Dist(String srcPdf, String distPdf, List
throws IOExceptionaAwOuUQ, DocumentException {
File srcPdfFile = new File(srcPdf);
if (!srcPdfFile.exists()) {
throw neaAwOuUQw IllegalArgumentException("找不到需要添加图层的pdf文件");
}
PdfReader reader = new PdfReader(srcPdf);
int n = reader.getNumberOfPages(); // PDF页数
PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(distPdf));
PdfContentByte over;
for (String layerPath : layerPathArr) {
File layerFile = new File(layerPath);
String currentPageNo = layerFile.getName().substring(0, layerFile.getName().lastIndexOf(".")); // 图片名称(对应页数)
boolean isNum = currentPageNo.matches("[0-9]+");
if (!isNum) {
throw new IllegalArgumentException("图层名称是不是数字");
}
Image img = Image.getInstance(layerPath);
img.setAbsolutePosition(0, 0);
if (n > 0 && n >= Integer.parseInt(currentPageNo)) {
over = stamp.getOverContent(Integer.parseInt(currentPageNo));
over.addImage(img);
}
}
http:// stamp.close();
reader.close();
return distPdf;
}
}
测试:
public static void main(String[] args) throws IOException, DocumentException {
List
imgUrlList.add("D:/ts/testPDF/1.png");
//imgUrlList.add("D:/ts/testPDF/2.png");
imgUrlList.add("D:/ts/testPDF/3.png");
markLocalImage42Dist("D:/ts/testPDF/testPDF.pdf", "D:/ts/testPDF/testPDF2.pdf", imgUrlList);
}
结果:
原PDF:
合成后PDF:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~