response.setContentType("application/pdf")
response.setHeader("Content-Disposition", "attachmentfilename="
+ fileName + ".pdf")
OutputStream outs = response.getOutputStream()// 获取输出流
PdfWriter writer = PdfWriter.getInstance(doc, outs)
document.open()
PdfContentByte under = writer.getDirectContentUnder()
Java code//添加水印
under.beginText()
under.setColorFill(BaseColor.LIGHT_GRAY)
under.setFontAndSize(bfTitle, 100)
under.setTextMatrix(70, 0)
int rise = 200
for (int k = 0k <waterMarkName.length()k++) {
under.setTextRise(rise)
char c = waterMarkName.charAt(k)
under.showText(c + " ")
rise += 100
}
under.endText()
document.close()//关闭
设置的签名,别人无法更改。
1、找到要签字的PDF格式文件,双击打开它。
2、然后【文件】---【打开】---【桌面】保存文件的位置,找到文件,点击打开。这种方法麻烦一点。
3、然后在打开页面上找到【PDF签名】,然后选中【创建签名】选项;
4、可以选择【直接导入图片】或者【绘制签名】,选择后者,然后绘制自定义签字【已审阅】,然后命名【名称】,还可以添加密码保护。
5、然后【双击应用签名】,就可以得到下面自定义绘制的签名;
6、注意:这个签字别人是不能更改的,因为设置了密码,所以这样就可以对签字起到一个保护的作用。
首先需要的jar包为iText-2.1.2u.jar、iTextAsian.jar。import java.awt.Color
import java.io.BufferedOutputStream
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.Calendar
import com.lowagie.text.DocumentException
import com.lowagie.text.Element
import com.lowagie.text.pdf.BaseFont
import com.lowagie.text.pdf.PdfContentByte
import com.lowagie.text.pdf.PdfGState
import com.lowagie.text.pdf.PdfReader
import com.lowagie.text.pdf.PdfStamper
public class TestWaterPrint {
public static void main(String[]args) throws DocumentException, IOException{
//要输出的pdf文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File("E:/abc.pdf")))
Calendar cal = Calendar.getInstance()
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")
//将pdf文件先加水印然后输出
setWatermark(bos,"E:/pdf源文件.pdf",format.format(cal.getTime()) + " 下载使用人:" + "测试user", 16)
}
public static void setWatermark(BufferedOutputStream bos, String input,
String waterMarkName, int permission)
throws DocumentException, IOException {
PdfReader reader = new PdfReader(input)
PdfStamper stamper = new PdfStamper(reader, bos)
int total = reader.getNumberOfPages() + 1
PdfContentByte content
BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",
BaseFont.EMBEDDED)
PdfGState gs = new PdfGState()
for (int i = 1i <totali++) {
content = stamper.getOverContent(i)//在内容上方加水印
//content = stamper.getUnderContent(i)//在内容下方加水印
gs.setFillOpacity(0.2f)
// content.setGState(gs)
content.beginText()
content.setColorFill(Color.LIGHT_GRAY)
content.setFontAndSize(base, 50)
content.setTextMatrix(70, 200)
content.showTextAligned(Element.ALIGN_CENTER, "公司内部文件,请注意保密!", 300,
350, 55)
content.setColorFill(Color.BLACK)
content.setFontAndSize(base, 8)
content.showTextAligned(Element.ALIGN_CENTER, "下载时间:"
+ waterMarkName + "", 300, 10, 0)
content.endText()
}
stamper.close()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)