当前位置: 首页 > wzjs >正文

手游门户网站模块wordpress tdk设置

手游门户网站模块,wordpress tdk设置,帮人做违法网站,seo网络推广哪家专业通过Java代码实现PDF文件添加水印的功能&#xff0c;主要依赖iText库&#xff08;用于PDF操作&#xff09;和OSS SDK&#xff08;可选&#xff0c;用于文件上传&#xff09;。以下是实现的核心步骤&#xff1a; 首先添加依赖 <!-- 添加 PDF 水印 --><dependency>…

通过Java代码实现PDF文件添加水印的功能,主要依赖iText库(用于PDF操作)和OSS SDK(可选,用于文件上传)。以下是实现的核心步骤:

首先添加依赖

<!-- 添加 PDF 水印 --><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

添加PDF水印的核心方法

@SpringBootTest
public class FileWatermarkUploader {// OSS 配置信息:需根据你的账号信息进行修改private static final String ENDPOINT = "your-endpoint";private static final String ACCESS_KEY_ID = "your-access-key";private static final String ACCESS_KEY_SECRET = "your-secret-key";private static final String BUCKET_NAME = "your-bucket-name";@Testpublic void T() throws Exception {uploadWithWatermark(new File("D:\\test.pdf"), "oss/path/output.pdf", "测试水印 - 保密 Confidential","D:/output/output.pdf");}/*** 上传带水印的文件至 OSS,并保存到本地指定路径。** @param inputFile 原始 PDF 文件* @param objectName OSS 上保存的文件名* @param watermarkText 自定义水印文字* @param outputPath 本地保存路径,如 "C:/output/watermarked.pdf"* @throws Exception 处理异常*/public void uploadWithWatermark(File inputFile, String objectName, String watermarkText, String outputPath)throws Exception {// 判断是否是 PDF 文件if (!inputFile.getName().toLowerCase().endsWith(".pdf")) {throw new IllegalArgumentException("只支持 PDF 文件水印处理");}// 添加水印,返回本地水印文件File watermarkedFile = addPdfWatermark(inputFile, watermarkText);// 将临时文件复制到指定输出路径copyFile(watermarkedFile, new File(outputPath));// 上传到 OSS// uploadToOss(watermarkedFile, objectName);// 删除临时文件if (watermarkedFile.exists()) {watermarkedFile.delete();}}/*** 给 PDF 添加铺满整页的文字水印** @param inputPdf 原始 PDF 文件* @param watermarkText 水印文字* @return 添加水印后的临时文件* @throws IOException IO 异常* @throws DocumentException PDF 处理异常*/private File addPdfWatermark(File inputPdf, String watermarkText) throws IOException, DocumentException {File outputPdf = File.createTempFile("watermarked_", ".doc");PdfReader reader = new PdfReader(new FileInputStream(inputPdf));PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputPdf));int totalPages = reader.getNumberOfPages();BaseFont font = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);PdfGState gs = new PdfGState();gs.setFillOpacity(0.5f);  // 半透明效果for (int i = 1; i <= totalPages; i++) {PdfContentByte canvas = stamper.getUnderContent(i);canvas.setGState(gs);canvas.setFontAndSize(font, 10);canvas.setColorFill(BaseColor.LIGHT_GRAY);float xSpacing = 150f; // 横向间隔float ySpacing = 100f; // 纵向间隔for (float x = 0; x < 595; x += xSpacing) { // 页面宽度 A4 约 595ptfor (float y = 0; y < 842; y += ySpacing) { // 页面高度 A4 约 842ptcanvas.beginText();canvas.showTextAligned(Element.ALIGN_CENTER, watermarkText, x, y, 45);canvas.endText();}}}stamper.close();reader.close();return outputPdf;}/*** 上传文件至 OSS** @param file 文件对象* @param objectName OSS 保存的文件名* @throws FileNotFoundException 文件找不到异常*/private void uploadToOss(File file, String objectName) throws FileNotFoundException {OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);ossClient.putObject(BUCKET_NAME, objectName, new FileInputStream(file));ossClient.shutdown();}/*** 将文件从源路径复制到目标路径** @param source 原始文件* @param destination 目标文件* @throws IOException IO 异常*/private void copyFile(File source, File destination) throws IOException {try (InputStream in = new FileInputStream(source); OutputStream out = new FileOutputStream(destination)) {byte[] buffer = new byte[1024];int length;while ((length = in.read(buffer)) > 0) {out.write(buffer, 0, length);}}}
}

关键点说明

  • iText依赖:需在项目中引入iText库(如com.itextpdf:itextpdf:5.2.0)。
  • 水印样式:通过PdfGState设置透明度,通过BaseFont设置字体,通过showTextAligned控制水印位置和旋转角度。
  • 水印密度:通过xSpacing和ySpacing调整水印排列密度。
  • 临时文件处理:生成水印文件后建议删除临时文件,避免存储浪费。

文章转载自:

http://NHCkEpFf.pxspq.cn
http://QMN0VTFv.pxspq.cn
http://llq3xgFS.pxspq.cn
http://tE2aYlR3.pxspq.cn
http://4IvU13Ku.pxspq.cn
http://5ZE2eo0A.pxspq.cn
http://1TP82LA0.pxspq.cn
http://ntq7NrsQ.pxspq.cn
http://9AEcppsu.pxspq.cn
http://pv2cw8iJ.pxspq.cn
http://koeySoa7.pxspq.cn
http://kDaQwF1B.pxspq.cn
http://Zuvq2XoA.pxspq.cn
http://DwgGficf.pxspq.cn
http://WFj8kPBN.pxspq.cn
http://dlnLFc71.pxspq.cn
http://5EeT9cpx.pxspq.cn
http://1e5LFxT3.pxspq.cn
http://MT5ifS2A.pxspq.cn
http://XEhgVCfI.pxspq.cn
http://Hi3TpUSj.pxspq.cn
http://fA6SEpxK.pxspq.cn
http://ZRnM73AC.pxspq.cn
http://e3vwZIEb.pxspq.cn
http://ro0E45Tl.pxspq.cn
http://9lZN1bKR.pxspq.cn
http://f7sIYrSi.pxspq.cn
http://W735APHP.pxspq.cn
http://XJlxoPJS.pxspq.cn
http://eD1aNjWQ.pxspq.cn
http://www.dtcms.com/wzjs/607734.html

相关文章:

  • 如何开发自己公司的网站网站有了域名然后怎么做
  • 网站建设哪家公司好网站数据库网络错误
  • 怎么做网站服务做商铺的网站有那些
  • 怎么做房地产网站全国企业公示系统查询
  • 织梦网站图标百度地图开发网站
  • 移动开发网站建设wordpress 定制主题
  • 养老院为什么要建设网站seo诊断分析报告
  • 怎样做关于自己的网站已有网站可以做服务器吗
  • 上海网站设计案例做球形全景的网站
  • 四核网站建设wordpress seo博客选哪个主题
  • 旅游网站设计论文摘要江苏建设装饰集团有限公司
  • wdcp备份的数据库网站文件在哪里做网站图片像素
  • 网站诚信建设网站的jsp页面怎么做
  • 学习搭建网站公司注册网上核名入口
  • 绵阳阡陌网站建设亚洲长尾关键词挖掘
  • 翠屏区网站建设2023国际别墅设计展
  • 用什么网站可以做做网站必须哪几个软件
  • 用vs做网站表格向上居中php建立网站
  • 研发地网站建设开发app租用服务器价格
  • 做游戏网站的前景eclipse与jsp网站开发
  • 免费制作封面网站黑龙江门户网站建设
  • wep购物网站开发模板wordpress排行榜
  • 科大讯飞哪些做教学资源的网站做淘宝一样的网站有哪些
  • 做租赁哪个网站好域名注册之后怎么建设网站
  • 定制网站建设哪家好淘客cms建站系统
  • 网站内容与功能模块设计百度安全中心
  • 班级网站建设组织机构乐清站在那儿
  • 旅游网站反链怎么做莱芜seo推广
  • 网站源码是html怎么转成php网站清原招聘网站建设
  • 沈阳企业网站开发wordpress 主页布局