如何在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)但这无济于事。

如何在asp.net 3.5中使用c编写pdf文件

使用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/