在PDF中以编程方式添加文字印章
Contents
[
Hide
]
使用Java添加文字印章
Aspose.PDF for Java提供了TextStamp类,以便在PDF文件中添加文字印章。 TextStamp 类提供了必要的方法来指定印章对象的字体大小、字体样式和字体颜色等。为了添加文本印章,首先需要使用所需的方法创建一个 Document 对象和一个 TextStamp 对象。之后,可以调用 Page 类的 addStamp(..) 方法在 PDF 文档中添加印章。
以下代码片段展示了如何在 PDF 文件中添加文本印章。
package com.aspose.pdf.examples;
import com.aspose.pdf.*;
import com.aspose.pdf.facades.*;
import com.aspose.pdf.facades.Stamp;
public class ExampleStampingImage {
// 文档目录的路径。
private static String _dataDir = "/home/admin1/pdf-examples/Samples/";
public static void AddTextStamp() {
// 打开文档
Document pdfDocument = new Document("input.pdf");
// 创建文本印章
TextStamp textStamp = new TextStamp("Sample Stamp");
// 设置印章是否为背景
textStamp.setBackground(true);
// 设置起始位置
textStamp.setXIndent(100);
textStamp.setYIndent(100);
// 旋转印章
textStamp.setRotate(Rotation.on90);
// 设置文本属性
textStamp.getTextState().setFont(FontRepository.findFont("Arial"));
textStamp.getTextState().setFontSize(14.0F);
textStamp.getTextState().setFontStyle(FontStyles.Bold);
textStamp.getTextState().setFontStyle(FontStyles.Italic);
textStamp.getTextState().setForegroundColor(Color.getGreen());
// 将印章添加到特定页面
pdfDocument.getPages().get_Item(1).addStamp(textStamp);
// 保存输出文档
pdfDocument.save("TextStamp_output.pdf");
}
定义 TextStamp 对象的对齐方式
为 PDF 文档添加水印是一个经常被需求的功能,而 Aspose.PDF for Java 完全能够添加图像和文本水印。TextStamp 类提供了在 PDF 文件上添加文本水印的功能。最近有一个需求是支持在使用 TextStamp 对象时指定文本对齐方式。因此,为了满足这一需求,我们在 TextStamp 类中引入了 setTextAlignment(..) 方法。通过使用此方法,您可以指定水平文本对齐方式。
以下代码片段展示了如何加载现有 PDF 文档并在其上添加 TextStamp 的示例。
public static void DefineAlignmentTextStamp() {
// 用输入文件实例化 Document 对象
Document pdfDocument = new Document("input.pdf");
// 用示例字符串实例化 FormattedText 对象
FormattedText text = new FormattedText("This");
// 向 FormattedText 添加新文本行
text.addNewLineText("is sample");
text.addNewLineText("Center Aligned");
text.addNewLineText("TextStamp");
text.addNewLineText("Object");
// 使用 FormattedText 创建 TextStamp 对象
TextStamp stamp = new TextStamp(text);
// 指定文本水印的水平对齐为居中对齐
stamp.setHorizontalAlignment(HorizontalAlignment.Center);
// 指定文本水印的垂直对齐为居中对齐
stamp.setVerticalAlignment(VerticalAlignment.Center);
// 指定 TextStamp 的文本水平对齐为居中对齐
stamp.setTextAlignment(HorizontalAlignment.Center);
// 设置水印对象的上边距
stamp.setTopMargin(20);
// 将水印添加到 PDF 文件的所有页面
pdfDocument.getPages().get_Item(1).addStamp(stamp);
// 保存输出文档
pdfDocument.save("TextStamp_output.pdf");
}
在 PDF 文件中填充描边文本作为印章
我们已经实现了在文本添加和编辑场景中设置渲染模式的功能。要渲染描边文本,请创建 TextState 对象,并将 RenderingMode 设置为 TextRenderingMode.StrokeText,同时为 StrokingColor 属性选择颜色。之后,使用 BindTextState() 方法将 TextState 绑定到印章。
以下代码片段演示了如何添加填充描边文本:
public static void FillStrokeTextAsStampInPDFFile(){
// 创建 TextState 对象以传输高级属性
TextState ts = new TextState();
// 为描边设置颜色
ts.setStrokingColor(Color.getGray());
// 设置文本渲染模式
ts.setRenderingMode (TextRenderingMode.StrokeText);
// 加载输入 PDF 文档
PdfFileStamp fileStamp = new PdfFileStamp(new Document(_dataDir + "input.pdf"));
Stamp stamp = new Stamp();
stamp.bindLogo(new FormattedText("PAID IN FULL", java.awt.Color.GRAY, "Arial", EncodingType.Winansi, true, 78));
// 绑定 TextState
stamp.bindTextState(ts);
// 设置 X,Y 原点
stamp.setOrigin(100, 100);
stamp.setOpacity (5);
stamp.setBlendingSpace (BlendingColorSpace.DeviceRGB);
stamp.setRotation (45.0F);
stamp.setBackground(false);
// 添加印章
fileStamp.addStamp(stamp);
fileStamp.save(_dataDir + "ouput_out.pdf");
fileStamp.close();
}