【问题标题】:how to write a pdf file using c# in asp.net 3.5? [closed]如何在 asp.net 3.5 中使用 c# 编写 pdf 文件? [关闭]
【发布时间】:2013-02-06 10:09:40
【问题描述】:

我正在尝试找到一种将采购订单数据写入 PDF 文件的方法。任何人都可以在这方面给我建议吗?

我买不起第 3 方 DLL,所以想要免费 DLL 或任何其他方式的建议。

我试过这个:(http://www.codeproject.com/Articles/7627/PDF-Library-for-creating-PDF-with-tables-and-text) 但没有帮助。

【问题讨论】:

标签: c# asp.net pdf pdf-generation


【解决方案1】:

使用iTextSharp 是iText 的C# 端口,以及用于PDF 生成和操作的开源Java 库。它可用于从头开始创建 PDF 文档、将 XML 转换为 PDF(使用额外的 XFA Worker DLL)、填写交互式 PDF 表单、在现有 PDF 文档上标记新内容、拆分和合并现有 PDF 文档,以及更多。

特点

  • PDF 生成
  • PDF 操作(加盖水印、合并/拆分 PDF...)
  • PDF 表单填写
  • XML 功能
  • 数字签名

【讨论】:

  • 这是免费的吗?因为这个项目我买不到
  • @ArindamDas - 是的,您可以访问该网站并查看
  • 谢谢你..我正在尝试,如果它有效,我会告诉你
  • @ArindamDas - 欢迎...您可以在 codeproject.com 上查看教程。如果您需要,请不要忘记投票并将答案标记为已接受
  • @ArindamDas iText 和 iTextSharp 根据 AGPL 的条件可以商业或免费获得。您应该检查您的项目是否符合这些条件。
【解决方案2】:

明智地创建它会起作用

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();

} 

【讨论】:

    【解决方案3】:

    您可以将 iText 库用于 .NET 你可以在这里找到一些有用的信息 http://www.ujihara.jp/iTextdotNET/en/examples.html 从下载 iText 库 http://itextpdf.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2011-03-07
      • 2014-06-09
      • 1970-01-01
      相关资源
      最近更新 更多