如何在asp.net 3.5中使用c编写pdf文件
本文关键字:编写 文件 pdf asp net | 更新日期: 2023-09-27 18:00:19
我正试图找到一种在PDF文件中写入采购订单数据的方法。有人能给我提些建议吗?
我买不起第三方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文档,等等。
功能
- PDF生成
- PDF操作(标记水印、合并/拆分PDF等)
- PDF表单填写
- XML功能
- 数字签名
类似地创建它将工作
string Filepath=Server.MapPath("/AOF.pdf");var pdfpath=Path.Combine(文件路径,");
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();
}
您可以使用.NET的iText库你可以在这里找到一些有用的信息http://www.ujihara.jp/iTextdotNET/en/examples.html从下载iText库http://itextpdf.com/