新签名字段旋转90度

时间:2015-09-01 13:06:09

标签: c# itextsharp

我可以使用注释在PDF上添加新的签名块,但它总是旋转90 *到页面。我在添加它之前尝试在注释上使用.Rotate方法,但这没有做任何事情。我还旋转了PDF模板,添加的签名字段保持相同的90 *方向。我也改变了矩形点,但似乎对旋转没有任何影响。我不想签署PDF ...我只想添加一个空白的sig字段供其他方签名。

//Get location to the field where we will place the signature field
AcroFields.FieldPosition NewPosition = fields.GetFieldPositions("DESC_0_" + (itemno + 1).ToString())[0];
float l1 = NewPosition.position.Left;
float r1 = NewPosition.position.Right;
float t1 = NewPosition.position.Top;
float b1 = NewPosition.position.Bottom;

PdfFormField field = PdfFormField.CreateSignature(pdfStamper.Writer);
field.FieldName = "G4_Signature";

// Set the widget properties
field.SetWidget(new iTextSharp.text.Rectangle(r1, t1, l1, b1), PdfAnnotation.HIGHLIGHT_NONE);
field.Flags = PdfAnnotation.FLAGS_PRINT;
// Add the annotation
pdfStamper.AddAnnotation(field, 1);

Rotated signature field

1 个答案:

答案 0 :(得分:1)

使用旋转页面词典条目旋转文档中的页面。在以后创建要由其他人填写的字段时,如果希望字段内容有效地显示为直立,则必须向字段添加提示以指示反向旋转。

您可以通过设置字段的MKRotation属性来执行此操作:

field.Flags = PdfAnnotation.FLAGS_PRINT;
// Add a hint for upright signature creation
field.MKRotation = 90;
// Add the annotation
pdfStamper.AddAnnotation(field, 1);

这会在字段的外观特征字典 MK 中创建一个值为90的旋转条目 R

背景:

  

MK 字典(可选)外观特征字典(参见表189),用于构建指定页面上注释的可视化表示的动态外观流。

     

此条目的名称 MK 仅具有历史意义且没有   直接意义。

     

(表188 - 特定于窗口小部件注释的附加条目 - 在ISO 32000-1中)

  

R integer (可选)小部件注释相对于页面逆时针旋转的度数。该值应为90的倍数。默认值:0。

     

(表189 - 外观特征字典中的条目 - 在ISO 32000-1中)