返回首页

介绍
在这篇文章中,我将介绍一个简单的源代码,允许您添加anbsp;签名PDF文件,并​​修改其数据。我使用iTextSharp,您需要Visual Studio 2010中能够打开并构建project.nbsp;NBSP

背景solutionUsing代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Drawing;

using Newtonsoft.Json;

using System.Drawing.Text;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

using iTextSharp.text;

using iTextSharp.text.pdf;

using System.IO;

using System.Diagnostics;

using PV_ImageConverter;



public partial class Requirement : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        rdoYes.Checked = true;

        RdoCompleted.Checked = true;

    }

    protected void btnSubmit_Click(object sender, EventArgs e)

    {

        PV_SignImage sigGenerator = new PV_SignImage();



        Bitmap signatureImage = sigGenerator.SigJsonToImage(FirstSignature.Value);

        string FirstSign = Server.MapPath("SIGN") + "\\" + DateTime.Now.ToString().Replace("/", "").Replace(":", "").Trim() + ".jpg";

        signatureImage.Save(FirstSign, ImageFormat.Jpeg);

        signatureImage.Dispose();



        Bitmap signatureImage_second = sigGenerator.SigJsonToImage(SecondSignature.Value);

        string SecondSign = Server.MapPath("SIGN") + "\\" + DateTime.Now.AddMinutes(1).ToString().Replace("/", "").Replace(":", "").Trim() + ".jpg";

        signatureImage_second.Save(SecondSign, ImageFormat.Jpeg);

        signatureImage_second.Dispose();









        FillForm(FirstSign, SecondSign);

    }

    private void FillForm(string FirstSign, string SecondSign)

    {







        string pdfTemplate = Server.MapPath("PDF/Business Requirement.pdf");

        string newFile = Server.MapPath("PDF/Business Requirement_Completed.pdf");



        PdfReader pdfReader = new PdfReader(pdfTemplate);

        PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(

                    newFile, FileMode.Create));



        AcroFields pdfFormFields = pdfStamper.AcroFields;









        // set form pdfFormFields



        pdfFormFields.SetField("Client", DDlClient.SelectedValue.ToString());

      



        iTextSharp.text.Image instanceImg = iTextSharp.text.Image.GetInstance(FirstSign);



        PdfContentByte overContent = pdfStamper.GetOverContent(1);





        iTextSharp.text.Rectangle imageRect = new iTextSharp.text.Rectangle(10, 10, 100, 100);



        instanceImg.ScaleToFit(imageRect.Width, imageRect.Height);



        instanceImg.SetAbsolutePosition(400, 80);





        overContent.AddImage(instanceImg);



        iTextSharp.text.Image instanceImg1 = iTextSharp.text.Image.GetInstance(SecondSign);



        PdfContentByte overContent1 = pdfStamper.GetOverContent(1);



        iTextSharp.text.Rectangle imageRect1 = new iTextSharp.text.Rectangle(10, 10, 100, 100);



        instanceImg1.ScaleToFit(imageRect.Width, imageRect.Height);



        instanceImg1.SetAbsolutePosition(400, 28);





        overContent1.AddImage(instanceImg1);







        // flatten the form to remove editting options, set it to false

        // to leave the form open to subsequent manual edits

        pdfStamper.FormFlattening = false;



        // close the pdf

        pdfStamper.Close();





        Response.Redirect("PDF/Business Requirement_Completed.pdf");

    }

}

		
Newtonsoft.Json.dll itextsharp.dll其可为您
点利息
它很简单... ...

回答

评论会员:Britman布兰科 时间:2012/01/27
这是我的第一篇文章/提示过..我会解释它的​​到来... ...
评论会员:韦恩Gaylard 时间:2012/01/27
我认为你应该给我们实施的详细信息代码,也许说明你为什么不作出一定的选择,而不是你所做的,只是显示我们的代码是不是真的应该考虑什么文章。
... ...我有丰富的经验编写计算机代码,包括伊斯兰会议组织,顺便说一句,广播事业检讨委员会,恕我直言,LMAO,ROFL,TTYL .....{ BR}
评论会员:DaveAuld 时间:2012/01/27
1)这是一个技巧不是文章。 BR}
2)您使用的是免费使用的图书馆吗?他们在哪里等等
戴夫
找到我:{A}
折叠统计:{A2}