Chr*_*ris 8 c# pdf acrobat itextsharp
使用itextsharp(或任何c#pdf库),我需要打开一个PDF,用实际值替换一些占位符文本,并将其作为byte []返回.
有人可以建议怎么做吗?我已经看了一下itext文档,无法弄清楚从哪里开始.到目前为止,我仍然坚持如何将源PDF文件从PDFReader获取到Document对象,我认为我可能以错误的方式接近它.
非常感谢
最后,我使用PDFescape打开我现有的PDF文件,并将一些表单字段放在我需要放置字段的位置,然后再次保存以创建我的PDF文件.
然后我找到了关于如何替换表单字段的博客文章:
一切都很好!这是代码:
public static byte[] Generate()
{
var templatePath = HttpContext.Current.Server.MapPath("~/my_template.pdf");
// Based on:
// http://www.johnnycode.com/blog/2010/03/05/using-a-template-to-programmatically-create-pdfs-with-c-and-itextsharp/
var reader = new PdfReader(templatePath);
var outStream = new MemoryStream();
var stamper = new PdfStamper(reader, outStream);
var form = stamper.AcroFields;
var fieldKeys = form.Fields.Keys;
foreach (string fieldKey in fieldKeys)
{
if (form.GetField(fieldKey) == "MyTemplatesOriginalTextFieldA")
form.SetField(fieldKey, "1234");
if (form.GetField(fieldKey) == "MyTemplatesOriginalTextFieldB")
form.SetField(fieldKey, "5678");
}
// "Flatten" the form so it wont be editable/usable anymore
stamper.FormFlattening = true;
stamper.Close();
reader.Close();
return outStream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33601 次 |
| 最近记录: |