如何使用itextsharp将数值字段对齐(pdfstamper)

时间:2013-02-13 07:27:31

标签: c# pdf alignment itextsharp

请参阅我的代码我在pdf上写的价值。但我想将数字字段对齐到右边 有没有任何财产/方法。我正在使用此属性PdfFormField.MK_CAPTION_RIGHT但它无效。

var pdfReader = new PdfReader(outputPath);
string fontsfolder1 = @"D:\ItextSharp\Fonts\acmesab.TTF";
var pdfStamper1 = new PdfStamper(pdfReader, new FileStream(outputPath3, FileMode.Create));
BaseFont customfont1 = BaseFont.CreateFont(fontsfolder, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
   AcroFields af = pdfStamper1.AcroFields;
   List<BaseFont> list1 = new List<BaseFont>();
   list.Add(customfont1);
   iTextSharp.text.Font bold1 = new iTextSharp.text.Font(customfont1, 6, 0, BaseColor.BLACK);
   af.SubstitutionFonts = list;
   foreach (var field1 in af.Fields)
   {
            af.SetFieldProperty(field1.Key, "textalignment", PdfFormField.MK_CAPTION_RIGHT, null);
     af.SetField(field1.Key, "123");
   }
     pdfStamper1.FormFlattening = false;
     pdfStamper1.Close();

2 个答案:

答案 0 :(得分:1)

我不知道如何使用ItextSharp Property直接执行此操作。但是一种方法是在内容的左侧添加空格,为此,您可以获得字段长度并基于该长度和长度在内容中,您可以计算要添加到内容左侧的空格。它会自动将您的内容放在PDF字段的右侧。这样可以帮助您解决问题......

答案 1 :(得分:1)

您可以使用ShowTextAligned方法对齐文本,该方法采用对齐参数,如下所示:

cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT,"Text is left aligned",200,800,0);
cb.ShowTextAligned(PdfContentByte.ALIGN_RIGHT,"Text is right aligned",200,788,0);

其中cb是PdfContentByte

For Detail