1、首先打开需要编辑的PDF文件,进入到编辑页面中。
2、然后在d出来的窗口中点击打开工具中的“编辑文本和图像”。
3、然后点击选中左侧中的文字。
4、然后就可以点击进行编辑了。
方式:读取一个需要添加签名的源文件,输出成功的签名后的文件Java代码 收藏代码
import java.io.*
import java.security.*
import com.itextpdf.text.*
public class signPDF {
public static void sign() throws Exception {
KeyStore ks = KeyStore.getInstance("pkcs12")
ks.load(new FileInputStream("demo.p12"),"123456".toCharArray())//123456为私钥密码
String alias = (String) ks.aliases().nextElement()
PrivateKey key = (PrivateKey) ks.getKey(alias, "123456".toCharArray())
Certificate[] chain = ks.getCertificateChain(alias)
PdfReader reader = new PdfReader("demo.pdf")//源文件
FileOutputStream fout = new FileOutputStream("z.pdf")
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0')
PdfSignatureAppearance sap = stp.getSignatureAppearance()
sap.setCrypto(key, chain, null, PdfSignatureAppearance.VERISIGN_SIGNED)
sap.setReason("")
sap.setLocation("") //添加位置信息,可为空
sap.setContact("http://swordshadow.iteye.com/")
Image image = Image.getInstance("sign.png")//使用png格式透明图片
sap.setSignatureGraphic(image)
sap.setAcro6Layers(true)
sap.setRenderingMode(RenderingMode.GRAPHIC)
sap.setVisibleSignature(new Rectangle(300, 600, 400, 675), 1, null)//300和600 是对应x轴和y轴坐标
stp.getWriter().setCompressionLevel(5)
if (stp != null) {
stp.close()
}
if (fout != null) {
fout.close()
}
if (reader != null) {
reader.close()
}
}
public static void main(String[] args) {
try {
sign()
System.out.println("done!!")
} catch (Exception e) {
e.printStackTrace()
}
}
}
在使用itext打印pdf时,如果希望一行内出现两种字体,需要注意Paragraph与Chunk 的配合使用。其中Paragraph是段落,Chunk表示块,可以理解成一个词组之类的。其中Chunk的使用非常灵活,可以实现上标、角标等效果。针对于你的问题,可参照如下代码(注意,代码是示意性的,只是一个思路,可以仿照着来写):Paragraph largeText = new Paragraph()
Chunk chunk1 = new Chunk(“第一种字体”, getFontChineseFun(ts1))
Chunk chunk2 = new Chunk(“第二种字体”, getFontChineseFun(ts2))
largeText.add(chunk1)
largeText.add(chunk2)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)