创建注释
ComPDFKit 支持全类型的注释,包括便签,链接,图形,标记,图章,手绘,音频注释等,满足多样的注释需求。
创建便签注释
便签注释表现为小型图标或标签,用户点击后可以展开显示相关注释内容,这种注释类型用于添加个人笔记、提醒或备注,使用户能够在文档中添加个性化的附加信息,而不影响原始文本的可读性。
创建便签的步骤如下:
1.获取需要创建注释的页面对象。
2.在该页面上创建便签注释对象。
3.设置注释属性。
4.更新注释外观使其显示在文档上。
创建便签的代码如下:
// 获取需要创建便签的页面对象
CPDFPage page = document.PageAtIndex(0);
// 在该页面上创建便签注释
CPDFTextAnnotation textAnnotation =
page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_TEXT) as CPDFTextAnnotation;
// 设置便签注释属性
textAnnotation.SetColor(new byte[] { 255, 0, 0 });
textAnnotation.SetTransparency(255);
textAnnotation.SetContent("ComPDFKit");
textAnnotation.SetRect(new CRect(300, 600, 350, 650));
// 更新注释外观使其显示在文档上
textAnnotation.UpdateAp();
创建链接注释
链接注释使用户能够直接跳转到文档中的其他位置或外部资源,提供更丰富的导航体验。
创建链接注释的步骤如下:
- 获取需要创建注释的页面对象。
- 在该页面上创建链接注释对象。
- 通过
CPDFDestination
设置链接跳转到第2页。 - 设置注释属性,并将
CPDFDestination
对象附加到注释上。
创建链接的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
// 在该页面上创建链接注释。
CPDFLinkAnnotation link =
page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_LINK) as CPDFLinkAnnotation;
CPDFDestination dest = new CPDFDestination();
// 通过`CPDFDestination`设置链接跳转到第2页。
dest.PageIndex = 1;
// 设置注释属性,并将`CPDFDestination`对象附加到注释上。
link.SetRect(new CRect(0, 50, 50, 0));
link.SetDestination(document, dest);
创建文本注释
文本注释允许用户在 PDF 文档中插入自由格式的文字,用于添加注解、评论或解释文档内容。
创建文本注释的步骤如下:
1.获取需要创建注释的页面对象。
2.在该页面上创建文本注释对象。
3.设置注释属性。
4.更新注释外观使其显示在文档上。
创建文本注释的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
// 在该页面上创建文本注释。
CPDFFreeTextAnnotation freeText = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_FREETEXT) as CPDFFreeTextAnnotation;
// 设置注释属性。
string str = "ComPDFKit Samples";
freeText.SetContent(str);
freeText.SetRect(new CRect(0, 100, 160, 0));
CTextAttribute textAttribute = new CTextAttribute();
textAttribute.FontName = "Helvetica";
textAttribute.FontSize = 12;
byte[] fontColor = { 255, 0, 0 };
textAttribute.FontColor = fontColor;
freeText.SetFreetextDa(textAttribute);
freeText.SetFreetextAlignment(C_TEXT_ALIGNMENT.ALIGNMENT_CENTER);
// 将注释更新到文档上。
freeText.UpdateAp();
创建图形注释
图形注释包括矩形、圆形、线条和箭头等形状,用于在文档中绘制图形以突出或标记特定区域,表达文字不易描述的信息。
创建图形注释的步骤如下:
1.获取需要创建注释的页面对象。
2.在该页面上依次创建矩形,圆形,线段注释对象。
3.设置注释属性。
4.依次更新注释外观使其显示在文档上。
创建图形注释的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
float[] dashArray = { 2, 1 };
byte[] lineColor = { 255, 0, 0 };
byte[] bgColor = { 0, 255, 0 };
// 在该页面上创建矩形释对象。
CPDFSquareAnnotation square = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_SQUARE) as CPDFSquareAnnotation;
// 设置注释属性。
square.SetRect(new CRect(10, 250, 200, 200));
square.SetLineColor(lineColor);
square.SetBgColor(bgColor);
square.SetTransparency(120);
square.SetLineWidth(1);
square.SetBorderStyle(C_BORDER_STYLE.BS_DASHDED, dashArray);
// 依次更新注释外观使其显示在文档上。
square.UpdateAp();
// 在该页面上创建圆形注释对象。
CPDFCircleAnnotation circle = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_CIRCLE) as CPDFCircleAnnotation;
// 设置注释属性。
circle.SetRect(new CRect(10, 300, 110, 410));
circle.SetLineColor(lineColor);
circle.SetBgColor(bgColor);
circle.SetTransparency(120);
circle.SetLineWidth(1);
circle.SetBorderStyle(C_BORDER_STYLE.BS_DASHDED, dashArray);
// 依次更新注释外观使其显示在文档上。
circle.UpdateAp();
// 在该页面上创建线段注释对象。
CPDFLineAnnotation line = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_LINE) as CPDFLineAnnotation;
// 设置注释属性。
line.SetLinePoints(new CPoint(300, 300), new CPoint(350, 350));
line.SetLineType(C_LINE_TYPE.LINETYPE_NONE, C_LINE_TYPE.LINETYPE_CLOSEDARROW);
line.SetLineColor(lineColor);
line.SetTransparency(120);
line.SetLineWidth(1);
line.SetBorderStyle(C_BORDER_STYLE.BS_DASHDED, dashArray);
// 依次更新注释外观使其显示在文档上。
line.UpdateAp();
线段注释类型枚举
名称 | 描述 |
---|---|
LINETYPE_UNKNOWN | 非标准或无效的线段端点。 |
LINETYPE_NONE | 没有线段端点。 |
LINETYPE_ARROW | 两条短线以尖锐的角度相交,形成一个开放的箭头。 |
LINETYPE_CLOSEDARROW | 两条短线以尖锐的角度相交,就像样式一样,并通过第三条线连接,形成一个三角形闭合的箭头,内部填充了注释的内部颜色。 |
LINETYPE_SQUARE | 一个填充有注释内部颜色的正方形。 |
LINETYPE_CIRCLE | 一个填充有注释内部颜色的圆形。 |
LINETYPE_DIAMOND | 一个填充有注释内部颜色的菱形形状。 |
LINETYPE_BUTT | 一条与线本身垂直的短线,位于端点上。 |
LINETYPE_ROPENARROW | 两条与相反方向的短线。 |
LINETYPE_RCLOSEDARROW | 一个与相反方向的三角形闭合箭头。 |
LINETYPE_SLASH | 一条短线,位于端点上,大约比与线本身垂直的方向顺时针旋转30度。 |
创建标记注释
在 PDF 文档中添加标记,以突出、强调或说明特定内容,例如重要的段落、行或单词、关键词或表格等。ComPDFKit 提供高亮,下划线,波浪线,删除线四种标记注释。
创建标记注释的步骤如下:
1.获取需要创建注释的页面对象。
2.通过页面对象创建文本对象。
3.使用该文本对象取得需要添加标记的文本位置。
4.在该页面上创建对应的标记对象。
5.设置标记对象的属性。
6.更新注释外观使其显示在文档上。
以高亮注释为例,创建标记注释的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
// 通过页面对象创建文本对象。
CPDFTextPage textPage = page.GetTextPage();
// 使用该文本对象取得需要添加标记的文本位置。
List<Rect> rectList = textPage.GetCharsRectAtPos(new Point(0,0),new Point(500,500),new Point(10,10));
List<CRect> cRectList = new List<CRect>();
foreach(var rect in rectList)
{
cRectList.Add(new CRect((float)rect.Left, (float)rect.Top, (float)rect.Right, (float)rect.Bottom));
}
// 在该页上创建对应的标记对象。
CPDFHighlightAnnotation highlight = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_HIGHLIGHT) as CPDFHighlightAnnotation;
设置标记对象的属性。
byte[]color = {0,255,0};
highlight.SetColor(color);
highlight.SetTransparency(120);
highlight.SetQuardRects(cRectList);
// 依次更新注释外观使其显示在文档上。
highlight.UpdateAp();
创建图章注释
图章注释用于标识和验证文档的来源和真实性,ComPDFKit 支持标准图章,文字图章,图像图章。
创建图章注释的步骤如下:
1.获取需要创建注释的页面对象。
2.在该页面上创建对应的图章。
3.设置图章属性。
4.更新注释外观使其显示在文档上。
创建图章注释的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
// 创建标准印章。
CPDFStampAnnotation standard = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_STAMP) as CPDFStampAnnotation;
standard.SetStandardStamp("Approved");
standard.UpdateAp();
// 创建文字印章。
CPDFStampAnnotation text = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_STAMP) as CPDFStampAnnotation; ;
text.SetTextStamp("test", "detail text", C_TEXTSTAMP_SHAPE.TEXTSTAMP_LEFT_TRIANGLE, C_TEXTSTAMP_COLOR.TEXTSTAMP_RED);
text.UpdateAp();
// 创建图片印章。
CPDFStampAnnotation image = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_STAMP) as CPDFStampAnnotation; ;
byte[] imageData = new byte[500 * 500];
image.SetImageStamp(imageData, 500, 500);
image.UpdateAp();
创建手绘注释
手绘注释直接快捷,用于直接绘制标注。
创建手绘注释的步骤如下:
1.获取需要创建注释的页面对象。
2.在该页面上创建手绘注释。
3.设置手绘注释经过的路径。
4.设置注释其他属性。
5.更新注释外观使其显示在文档上。
创建手绘注释的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
// 在该页面上创建手绘注释。
CPDFInkAnnotation ink = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_INK) as CPDFInkAnnotation;
// 设置手绘注释经过的路径。
List<List<CPoint>> points = new List<List<CPoint>>();
points.Clear();
points.Add(new List<CPoint>()
{
new CPoint(10,100),
new CPoint(100,10),
});
ink.SetInkPath(points);
// 设置注释其他属性。
ink.SetInkColor(new byte[] { 255, 0, 0 });
ink.SetBorderWidth(2);
ink.SetTransparency(128);
ink.SetInkPath(points);
ink.SetThickness(8);
ink.SetInkRect(new CRect(10, 10, 200, 200));
// 更新图章注释到文档中。
ink.UpdateAp();
创建音频注释
创建音频注释的步骤如下:
1.获取需要创建注释的页面对象。
2.在该页上创建音频注释。
3.设置音频文件。
4.设置其他属性。
5.更新注释外观使其显示在文档上。
创建音频注释的代码如下:
// 获取需要创建注释的页面对象。
CPDFPage page = document.PageAtIndex(0);
// 在该页上创建音频注释。
CPDFSoundAnnotation sound = page.CreateAnnot(C_ANNOTATION_TYPE.C_ANNOTATION_SOUND) as CPDFSoundAnnotation;
// 设置音频文件。
sound.SetSoundPath("soundFilePath");
// 设置其他属性。
sound.SetRect(new CRect(0, 50, 50, 0));
// 更新注释外观使其显示在文档上。
sound.UpdateAp();