将标签添加到pdf文档itextsharp

时间:2016-08-01 14:31:08

标签: c# pdf itext

我使用iTextSharp将多个pdf文件合并为一个文件。 (下面我写了我正在使用的功能)。

现在我有了新的要求,我需要在第一页内设置带有一些文字的标签。标签应放在任何现有内容之上。

我想编写一个接收页面(类型为PdfImportedPage)和一个字符串作为参数的函数,修改添加标签的页面并返回修改后的页面。

感谢您的帮助

这是我使用的功能:

public byte[] Join(params byte[][] files)
{
     byte[] mergedPdf = null;
     using (MemoryStream ms = new MemoryStream())
     {
           using (Document document = new Document())
           {
                using (PdfCopy copy = new PdfCopy(document, ms))
                {
                    document.Open();

                    for (int i = 0; i < files.Count(); ++i)
                    {
                        using (PdfReader reader = new PdfReader(files[i]))//stampedDoc))
                        {
                            // loop over the pages in that document
                            int n = reader.NumberOfPages;
                            for (int page = 0; page < n; )
                            {
                                var addPage = copy.GetImportedPage(reader, ++page);
                                copy.AddPage(addPage);
                            }
                        }
                    }
                }
                mergedPdf = ms.ToArray();
            }
            return mergedPdf;
    }
}

更新1:

我写这个函数没有成功。

private void AddText(PdfCopy copy, string text)
{
     var pageStamp = copy.CreatePageStamp(addPage);
     var over = pageStamp.GetOverContent();
     overContent.SaveState();
     overContent.BeginText();
     BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
     overContent.SetFontAndSize(bf, 10 );
     overContent.SetTextMatrix( 100, 100);
     overContent.ShowText(text);
     overContent.EndText();
     overContent.RestoreState();

 }

0 个答案:

没有答案