導航:首頁 > 文檔加密 > javapdf水印圖片

javapdf水印圖片

發布時間:2022-07-17 03:59:11

java中列印的pdf怎麼添加圖片水印

添加水印可以參考使用控制項來添加的方法,如下:

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.PdfImage;

import com.spire.pdf.graphics.PdfTilingBrush;

import java.awt.*;

import java.awt.geom.Dimension2D;

import java.awt.geom.Rectangle2D;

public class AddBackground {

public static void main(String[] args) {

//創建PdfDocument對象,並載入PDF測試文檔

PdfDocument pdf = new PdfDocument();

pdf.loadFromFile("test.pdf");

//遍歷文檔每一頁,載入圖片,並設置成平鋪背景(水印)

for (int i = 0; i < pdf.getPages().getCount();i++)

{

PdfPageBase page = pdf.getPages().get(i);

Dimension2D dimension2D = new Dimension();

dimension2D.setSize(page.getCanvas().getSize().getWidth()/4, page.getCanvas().getSize().getHeight()/3);

PdfTilingBrush brush = new PdfTilingBrush(dimension2D);

brush.getGraphics().setTransparency(0.2f);

brush.getGraphics().translateTransform(brush.getSize().getWidth()/10,brush.getSize().getHeight()/10);

brush.getGraphics().rotateTransform(30);

PdfImage image = PdfImage.fromImage("logo.png");

brush.getGraphics().drawImage(image,brush.getSize().getWidth()-image.getWidth()/2,(brush.getSize().getHeight())/2);


Rectangle2D rectangle2D = new Rectangle2D.Float();

rectangle2D.setFrame(new Point(0,0),page.getCanvas().getClientSize());

page.getCanvas().drawRectangle(brush,rectangle2D);

}


//保存文檔

pdf.saveToFile("SetTiledBackground.pdf");

pdf.dispose();

}

}

註:這里使用的是free Spire.Pdf.jar(以上代碼參考自文章1、文章2)

② 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);
}

}
希望對您有幫助。

③ java 怎樣給相對路徑下的pdf文件加水印

3、在文檔選項頁面,選擇水印--添加;

4、首先輸入文本即水印內容,以及文本大小,顏色和字體信息;
5、接著設置文本放置的方向,可以自定義任意角度,為了不影響閱讀,可以設置透明度;

④ 如何將PDF文件添加上圖片水印

給PDF文件添加圖片水印的方法,可以批量添加:

第一步,電腦上下載「優速水印工廠」軟體工具後安裝打開,點擊軟體界面左邊的【PDF水印】功能,然後再點擊【添加文件】按鈕,將需要添加圖片水印的PDF文件導入到軟體中,軟體支持批量處理,節省時間。

⑤ pdf文件怎麼添加水印呢

教你如何快速給pdf文件加水印,支持批量添加:

第一步,電腦上下載軟體工具後安裝打開,點擊軟體界面左邊的【PDF水印】功能,然後再點擊【添加文件】按鈕,將需要添加圖片水印的PDF文件導入到軟體中,軟體支持批量處理,節省時間。

⑥ java如何實現在web工程中用OpenOffice生成帶有圖片水印的pdf

需要itext2.1.5,

以下是對pdf加水印的代碼,包括文字水印和圖片水印


public int fileCopy(String srcPath, String destPath) {
FileOutputStream fos = null;
FileInputStream fis = null;
try {
fos = new FileOutputStream(destPath);
fis = new FileInputStream(srcPath);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
return 1;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
fos.flush();
fos.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return 0;
}

/**
* 為pdf文件加文字水印
*
* @param srcPath
* 源文件路徑
* @param destPath
* 目標文件路徑
* @param waterText
* 水印文字
* @throws DocumentException
* @throws IOException
*/
public void wordWaterMark(String srcPath, String destPath, String waterText) throws DocumentException, IOException {
int result = fileCopy(srcPath, destPath);
if (result == 1) {
// 待加水印的文件
PdfReader reader = new PdfReader(destPath);
// 加完水印的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(srcPath));

int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
// 設置字體
BaseFont base = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

// 水印文字
int j = waterText.length(); // 文字長度
char c = 0;
int high = 0;// 高度
// 循環對每頁插入水印
for (int i = 1; i < total; i++) {
// 水印的起始
high = 60;
content = stamper.getUnderContent(i);
PdfGState gs = new PdfGState();
gs.setFillOpacity(0.1f);// 設置透明度為0.2
content.setGState(gs);
// 開始
content.beginText();
// 設置顏色
// content.setColorFill(new Color());
// 設置字體及字型大小
content.setFontAndSize(base, 88);
// 設置起始位置
content.setTextMatrix(120, 333);
// 開始寫入水印
for (int k = 0; k < j; k++) {
content.setTextRise(high);
c = waterText.charAt(k);
content.showText(c + "");
high += 20;
}
content.endText();

}
stamper.close();
System.out.println("添加成功++++++++++++++++++++++++++++++++++++++++++");
} else {
System.out.println("復制pdf失敗====================");
}

}

public void picWaterMark(String srcPath, String destPath, String imageFilePath)
throws DocumentException, IOException {
int result = fileCopy(srcPath, destPath);
if (result == 1) {
// 待加水印的文件
PdfReader reader = new PdfReader(destPath);
// 加完水印的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(srcPath));
Image img = Image.getInstance(imageFilePath);
img.setAbsolutePosition(50, 400);// 坐標
img.setRotation(20);// 旋轉 弧度
img.setRotationDegrees(45);// 旋轉 角度
// image.scaleAbsolute(200,100);//自定義大小
img.scalePercent(50);// 依照比例縮放
int pageSize = reader.getNumberOfPages();
for (int i = 1; i <= pageSize; i++) {
PdfContentByte under = stamper.getUnderContent(i);
under.addImage(img);
PdfGState gs = new PdfGState();
gs.setFillOpacity(0.2f);// 設置透明度為0.2
under.setGState(gs);
}
stamper.close();// 關閉
System.out.println("添加成功++++++++++++++++++++++++++++++++++++++++++");
} else {
System.out.println("復制pdf失敗====================");
}
}


linux下轉pdf可以用libreoffice,需要安裝,這個是免費的,具體代碼如下:

String command = "libreoffice5.0 --invisible --convert-to pdf:writer_pdf_Export --outdir " + destFilepath
+ " " + source;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

⑦ java pdf itext 水印 怎麼做到 漢字水印 平鋪或者換行 不想每頁只插入一行水印

// 僅設置一個圖片實例對象,整個PDF文檔只應用一個圖片對象,極大減少因為增加圖片水印導致PDF文檔大小增加
Image waterMarkImage = null ; //這里是圖片對象,
if (waterMarkImage == null) {
waterMarkImage = Image.getInstance(path);//path 根據自己的實際情況填寫。
}
// 添加水印圖片,文檔正文內容採用橫向三列,豎向兩列模式增加圖片水印
for(int i = 0 ; i < 100; i ++){
for(int j = 0 ; j < 4 ; j ++ ){
waterMarkPdfContent.addImage(getWaterMarkImage(waterMarkImage,pageWidth * 0.3f * j , pageHeight * 0.05f * i));
}
}
public static Image getWaterMarkImage(Image waterMarkImage,
float xPosition, float yPosition) {
waterMarkImage.setAbsolutePosition(xPosition, yPosition);// 坐標
//waterMarkImage.setRotation(-20);// 旋轉 弧度
//waterMarkImage.setRotationDegrees(-30);// 旋轉 角度
waterMarkImage.scalePercent(100);// 依照比例縮放
return waterMarkImage;
}

⑧ 怎麼給PDF文件添加水印

快速批量給pdf添加水印的方法,一鍵快速處理:

第一步,下載好上面的工具後安裝打開使用。左邊功能區選擇【PDF水印】功能。然後點擊【添加文件】或軟體中間空白處,將需要加水印的PDF圖片導入到軟體中,成功後PDF文件名會顯示在軟體中。

⑨ 如何給PDF文件添加水印

快速給PDF添加水印的方法,一鍵批量添加:

第一步,下載軟體工具後安裝打開,點擊軟體界面左邊的【PDF水印】功能,然後再點擊【添加文件】按鈕,將需要添加圖片水印的PDF文件導入到軟體中,軟體支持批量處理,節省時間。

⑩ 有哪些可以給pdf加水印,java第三方開源類庫

作者:流浪的小鼠
鏈接:https://www.hu.com/question/264003636/answer/279707367
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

使用iText ,感覺還是比較簡單的
具體代碼:
/**
*
* 【功能描述:添加圖片和文字水印】 【功能詳細描述:功能詳細描述】
* @param srcFile 待加水印文件
* @param destFile 加水印後存放地址
* @param text 加水印的文本內容
* @param textWidth 文字橫坐標
* @param textHeight 文字縱坐標
* @throws Exception
*/
public void addWaterMark(String srcFile, String destFile, String text,
int textWidth, int textHeight) throws Exception
{
// 待加水印的文件
PdfReader reader = new PdfReader(srcFile);
// 加完水印的文件
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(
destFile));
int total = reader.getNumberOfPages() + 1;
PdfContentByte content;
// 設置字體
BaseFont font = BaseFont.createFont();
// 循環對每頁插入水印
for (int i = 1; i < total; i++)
{
// 水印的起始
content = stamper.getUnderContent(i);
// 開始
content.beginText();
// 設置顏色 默認為藍色
content.setColorFill(BaseColor.BLUE);
// content.setColorFill(Color.GRAY);
// 設置字體及字型大小
content.setFontAndSize(font, 38);
// 設置起始位置
// content.setTextMatrix(400, 880);
content.setTextMatrix(textWidth, textHeight);
// 開始寫入水印
content.showTextAligned(Element.ALIGN_LEFT, text, textWidth,
textHeight, 45);
content.endText();
}
stamper.close();
}

閱讀全文

與javapdf水印圖片相關的資料

熱點內容
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923
全球程序員節點贊 瀏覽:986
php函數傳遞數組 瀏覽:631
人工峰群演算法的目標函數 瀏覽:468
如何刪加密文檔 瀏覽:105
塗鴉app一鍵執行如何刪除 瀏覽:756
安卓手機如何打開fr3文件 瀏覽:743
壓縮袋8絲和14絲是什麼意思 瀏覽:647
程序員大咖java 瀏覽:70
蘋果手機文檔安卓上怎麼打開 瀏覽:527
如何做淘寶代理伺服器 瀏覽:672
gz壓縮文件夾 瀏覽:179
字母h從右往左跑的c語言編程 瀏覽:137
安卓手機如何擁有蘋果手機橫條 瀏覽:771
業余編程語言哪個好學 瀏覽:151