我正在尝试找到一种将采购订单数据写入 PDF 文件的方法。有人可以建议我吗?
我买不起第 3 方 DLL,所以想要一个免费 DLL 或任何其他方式的建议。
我试过这个:(http://www.codeproject.com/Articles/7627/PDF-Library-for-creating-PDF-with-tables-and-text)但它没有帮助。
我正在尝试找到一种将采购订单数据写入 PDF 文件的方法。有人可以建议我吗?
我买不起第 3 方 DLL,所以想要一个免费 DLL 或任何其他方式的建议。
我试过这个:(http://www.codeproject.com/Articles/7627/PDF-Library-for-creating-PDF-with-tables-and-text)但它没有帮助。
使用iTextSharp是 iText 的 C# 端口,以及用于 PDF 生成和操作的开源 Java 库。它可用于从头开始创建 PDF 文档、将 XML 转换为 PDF(使用额外的 XFA Worker DLL)、填写交互式 PDF 表单、在现有 PDF 文档上标记新内容、拆分和合并现有 PDF 文档,以及多得多。
特征
明智地创建它会起作用
string Filepath = Server.MapPath("/AOF.pdf"); var pdfpath = Path.Combine(Filepath, "");
var Formcontent = ListFieldNames(Filepath);
Formcontent["Name_txt"] = "T.Test";
FillForm(Formcontent);
// var pdfContents = FillForm(pdfpath, Formcontent);
}
public Dictionary<string, string> ListFieldNames(string Filepath)
{
//PdfReader pdfReader = new PdfReader(pdfTemplate);
//StringBuilder sb = new StringBuilder();
//foreach(DictionaryEntry de in pdfReader.AcroFields.Fields)
//{
// sb.Append(de.Key.ToString() + Environment.NewLine);
//}
var Fileds = new Dictionary<string, string>();
PdfReader pdfReader = new PdfReader(Filepath);
var reader = new PdfReader(pdfReader);
foreach (var entry in reader.AcroFields.Fields)
Fileds.Add(entry.Key.ToString(), string.Empty);
reader.Close();
return Fileds;
}
public byte[] FillForm(string pdfPath, Dictionary<string, string> formFieldMap)
{
var output = new MemoryStream();
var reader = new PdfReader(pdfPath);
var stamper = new PdfStamper(reader, output);
var formFields = stamper.AcroFields;
foreach (var fieldName in formFieldMap.Keys)
formFields.SetField(fieldName, formFieldMap[fieldName]);
stamper.FormFlattening = true;
stamper.Close();
reader.Close();
return output.ToArray();
}
public void FillForm(Dictionary<string, string> Formfiledmap)
{
string pdfTemplate =Server.MapPath("/AOF.pdf");
string newFile = @"C:\Users\USer\Desktop\completed_fw4.pdf";
PdfReader pdfReader = new PdfReader(pdfTemplate);
PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));
AcroFields pdfFormFields = pdfStamper.AcroFields;
foreach(var fieldName in Formfiledmap.Keys)
pdfFormFields.SetField(fieldName,Formfiledmap[fieldName]);
pdfStamper.FormFlattening = true;
pdfStamper.Close();
}
您可以将 iText 库用于 .NET,您可以在此处找到一些有用的信息 http://www.ujihara.jp/iTextdotNET/en/examples.html从http://itextpdf.com/ 下载 iText 库