1. java怎麼給word文檔加水印
可以使用Free Spire.Doc for Java在word文檔中添加文本水印或圖片水印。Free Spire.Doc for Java下載鏈接:網頁鏈接
1.添加文本水印——代碼如下:
import com.spire.doc.*;
import com.spire.doc.documents.WatermarkLayout;
import java.awt.*;
public class WordTextWatermark {
public static void main(String[] args) {
Document document = new Document();
document.loadFromFile("Sample.docx");
insertTextWatermark(document.getSections().get(0));
}
private static void insertTextWatermark(Section section) {
TextWatermark txtWatermark = new TextWatermark();
txtWatermark.setText("內部使用");
txtWatermark.setFontSize(40);
txtWatermark.setColor(Color.red);
txtWatermark.setLayout(WatermarkLayout.Diagonal);
section.getDocument().setWatermark(txtWatermark);
}
}
2.添加圖片水印——代碼如下:
import com.spire.doc.*;
public class WordImageWatermark {
public static void main(String[] args) throws Exception{
Document document = new Document();
document.loadFromFile("Sample.docx");
PictureWatermark picture = new PictureWatermark();
picture.setPicture("logo.png");
picture.setScaling(5);
picture.isWashout(false);
document.setWatermark(picture);
document.saveToFile("out/result2.docx",FileFormat.Docx )
}
}
2. java中怎麼樣將水印加在圖片的上面或者下面
去我的博客,java加水印完全示範
http://hi..com/paladian1/blog/item/a243b30ea5ec95236059f354.html
3. JAVA 數字水印 小程序(給圖片打上水印或檢測水印),求發個源碼謝謝
packagecom.aspectj;
importjava.awt.Color;
importjava.awt.Graphics2D;
importjava.awt.Image;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.FileOutputStream;
importjavax.swing.ImageIcon;
importcom.sun.image.codec.jpeg.JPEGCodec;
importcom.sun.image.codec.jpeg.JPEGEncodeParam;
importcom.sun.image.codec.jpeg.JPEGImageEncoder;
/**
*@authorAdministrator
*
*TODO要更改此生成的類型注釋的模板,請轉至窗口-首選項-Java-代碼樣式-代碼模板
*
*添加水印,filePath源圖片路徑含圖片名,watermark水印圖片路徑savePath
*為你添加水印後的圖片保存路徑文件夾words要添加的文字
*/
//添加水印,filePath源圖片路徑,watermark水印圖片路徑
publicclassMark{
privatestaticintwid=0;
privatestaticinthet=0;
publicstaticbooleancreateMark(StringfilePath,Stringwatermark,
Stringwords,StringsavePath){
ImageIconimgIcon=newImageIcon(filePath);
ImagetheImg=imgIcon.getImage();
ImageIconwaterIcon=newImageIcon(watermark);
ImagewaterImg=waterIcon.getImage();
///////////////////////////////////////////////////////////////////////
Filef=newFile(filePath);
Stringpicname=f.getName();//取得圖片名
if(watermark!=null&&!watermark.equals("")){//當水印圖標為空時
ImageIconmarkIcon=newImageIcon(watermark);//要添加的水印圖標
ImagemarkImg=markIcon.getImage();
wid=markImg.getWidth(null);//水印圖標寬度
het=markImg.getHeight(null);//水印圖標高度
}
//////////////////////////////////////////////////////////////////////
intwidth=theImg.getWidth(null);//源圖片寬度
intheight=theImg.getHeight(null);//源圖片高度
if(savePath.equals(""))
savePath=filePath;//如果未指定保存路徑則保存回原路徑
else
savePath=savePath+"指定保存文件夾時,拼接出保存路徑";
BufferedImagebimage=newBufferedImage(width,height,
BufferedImage.TYPE_INT_RGB);
Graphics2Dg=bimage.createGraphics();
g.setColor(Color.red);//設置顏色
g.setBackground(Color.white);
g.drawImage(theImg,0,0,null);
g.drawImage(waterImg,width-wid+5,height-het+5,null);//添加圖標中間兩個數字參數
//是設定位置
g.drawString(words,width-120,height-10);//添加文字
try{
FileOutputStreamout=newFileOutputStream(savePath);
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParamparam=encoder.getDefaultJPEGEncodeParam(bimage);
param.setQuality(50f,true);//圖片質量
encoder.encode(bimage,param);
out.close();
}catch(Exceptione){
e.printStackTrace();
System.out.println("===========水印失敗");
returnfalse;
}finally{
System.gc();//清理垃圾對象
}
System.out.println("===========水印成功");
returntrue;
}
///測試主程序
publicstaticvoidmain(String[]args){
createMark(".jpg","u=4038692558,3024950167&fm=21&gp=0.jpg","aas","");
}
}
檢測水印很難做到,但是加上水印還是比較簡單的
4. java 如何給pdf文件加水印
可以使用Spire.PDF for Java通過Java來添加水印。
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作為依賴項。您可以從這個鏈接下載 JAR 文件;如果您使用Maven,則可以通過在 pom.xml 文件中添加以下代碼導入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository></repositories><dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>5.3.1</version>
</dependency></dependencies>
1.添加圖片水印
代碼如下:
import com.spire.pdf.*;
import java.awt.geom.Rectangle2D;
public class watermark {
public static void main(String[] args) {
//載入PDF文檔
PdfDocument doc = new PdfDocument();
doc.loadFromFile("C:\Users\Administrator\Desktop\Sample.pdf");
//獲取第一頁
PdfPageBase page = doc.getPages().get(0);
//設置背景圖片
page.setBackgroundImage("C:\Users\Administrator\Desktop\logo.png");
//設置背景區域
Rectangle2D.Float rect = new Rectangle2D.Float();
rect.setRect(280, 300, 150, 150);
page.setBackgroundRegion(rect);
//保存文檔
doc.saveToFile("output/imageWaterMark.pdf");
doc.close();
}
}
2.添加文本水印
代碼如下:
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;
public class Textwatermark {
public static void main(String[] args) {
//創建PdfDocument對象
PdfDocument pdf = new PdfDocument();
//載入示例文檔
pdf.loadFromFile("C:\Users\Administrator\Desktop\Sample.pdf");
//獲取第一頁
PdfPageBase page = pdf.getPages().get(0);
//調用insertWatermark方法插入文本水印
insertWatermark(page, "E-ICEBLUE");
//保存文檔
pdf.saveToFile("out/textWaterMark.pdf");
}
static void insertWatermark(PdfPageBase page, String watermark) {
Dimension2D dimension2D = new Dimension();
dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 2, page.getCanvas().getClientSize().getHeight() / 3);
PdfTilingBrush brush = new PdfTilingBrush(dimension2D);
brush.getGraphics().setTransparency(0.3F);
brush.getGraphics().save();
brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 2, (float) brush.getSize().getHeight() / 2);
brush.getGraphics().rotateTransform(-45);
brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.getViolet(), 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
brush.getGraphics().restore();
brush.getGraphics().setTransparency(1);
Rectangle2D loRect = new Rectangle2D.Float();
loRect.setFrame(new Point2D.Float(0, 0), page.getCanvas().getClientSize());
page.getCanvas().drawRectangle(brush, loRect);
}
}
希望對您有幫助。
5. Java上傳圖片到OSS怎麼添加水印
首先,圖片上的水印圖片只能使用當前存儲空間內的圖片,如果沒有,需要先傳到當前空間內。
其次,水印圖片的格式僅支持png,jpg,webp三種。
java裡面上傳水印,可以使用提供的sdk裡面的watermark方法,這個函數有5個參數,分別是t,g,x,y,voffset.其中第一個參數表示透明度,其它參數表示位置。
當然了,它還可以指定水印文字,具體可以參考阿里雲官方提供的文檔,代碼示例可以去github上找到對應操作的代碼。
具體代碼如下
// add watermark into the image
style = "image/watermark,text_SGVsbG8g5Zu-54mH5pyN5YqhIQ";
request = new GetObjectRequest(bucketName, key);
request.setProcess(style);
6. java實現在同一張圖片上面繪制多個不同位置的水印
Graphics2D g = buffImg.createGraphics();
// 3、設置對線段的鋸齒狀邊緣處理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(
srcImg.getScaledInstance(srcImg.getWidth(null),
srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
// 5、設置水印文字顏色
g.setColor(color);
// 6、設置水印文字Font
g.setFont(font);
// 7、設置水印文字透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
alpha));
// 8、第一參數->設置的內容,後面兩個參數->文字在圖片上的坐標位置(x,y)
g.drawString(logoText, positionX, PositionY);
// 9、釋放資源
g.dispose();,
你這里每一次都重新繪制了圖片,把之前繪制的部分覆蓋了
7. java給tif格式圖片加文字水印
packagecom.coderli.image;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.Image;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.FileOutputStream;
importjavax.imageio.ImageIO;
importcom.sun.image.codec.jpeg.JPEGCodec;
importcom.sun.image.codec.jpeg.JPEGImageEncoder;
@SuppressWarnings("restriction")
publicfinalclassImageUtils{
publicImageUtils(){
}
/**
*列印文字水印圖片
*
*@parampressText
*--文字
*@paramtargetImg--
*目標圖片
*@paramfontName--
*字體名
*@paramfontStyle--
*字體樣式
*@paramcolor--
*字體顏色
*@paramfontSize--
*字體大小
*@paramx--
*偏移量
*@paramy
*/
publicstaticvoidpressText(StringpressText,StringtargetImg,
StringfontName,intfontStyle,Colorcolor,intfontSize,intx,
inty){
try{
File_file=newFile(targetImg);
Imagesrc=ImageIO.read(_file);
intwidth=src.getWidth(null);
intheight=src.getHeight(null);
BufferedImageimage=newBufferedImage(width,height,
BufferedImage.TYPE_INT_RGB);
Graphicsg=image.createGraphics();
g.drawImage(src,0,0,width,height,null);
g.setColor(color);
g.setFont(newFont(fontName,fontStyle,fontSize));
g.drawString(pressText,width-fontSize-x,height-fontSize
/2-y);
g.dispose();
FileOutputStreamout=newFileOutputStream(targetImg);
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}catch(Exceptione){
System.out.println(e);
}
}
publicstaticvoidmain(String[]args){
pressText("bbs.coderli.com","f:/1.tiff","TimesNewRomas",Font.PLAIN,Color.BLUE,22,150,20);
}
}
這個方法里用的api是支持tiff格式的,你可以試試。