如何理解创建pdf的方法? C#

时间:2013-07-01 18:26:36

标签: c# .net pdf reflector

我从.wsp并没有文档的.NET Reflector转换中获取此方法。该应用程序的目的是创建一个可签名的.pdf表单。不能使用第三方甚至开源,所以iTextSharp,PDFSharp,&类似的不是选择,我是一个尽力提高学习曲线的新手。

我已将引用/使用指令添加到.cs“Method”文件中以重新创建aspx.cs文件。我剩下的最后一个错误是: '无法找到类型或命名空间名称'Doc'(您是否缺少using指令或程序集引用?)'

我找不到能让“Doc”在任何地方工作的参考资料。 '文档'和'Word'是我在网上可以找到的两个最接近的东西,但是没有任何帮助来增加我的理解。 这种方法对任何人来说都很熟悉吗?

protected void Create_PDF()
{
    Doc doc = new Doc();
    Doc doc2 = new Doc();
    doc2.Read(base.Server.MapPath(@"images\form_name.pdf"));
    int num = doc2.get_PageCount();
    Doc doc3 = new Doc();
    doc3.set_FontSize(10);
    doc3.get_MediaBox().set_String(doc2.get_MediaBox().get_String());
    doc3.get_Rect().Magnify(0.5, 0.5);
    doc3.get_Rect().Inset(10.0, 10.0);
    doc3.get_Rect().set_String(doc3.get_MediaBox().get_String());
    doc3.AddImageDoc(doc2, 1, null);
    doc3.FrameRect();
    doc3.get_Rect().set_String("40,570,230,590");
    doc3.AddHtml(this.str_1);
    doc3.get_Rect().set_String("250,570,420,590");
    doc3.AddHtml(this.str_2);
    doc3.get_Rect().set_String("430,570, 570, 590");
    doc3.AddHtml(this.str_3);
    doc3.get_Rect().set_String("40,540,170,555");
    doc3.AddHtml(this.str_4);
    doc3.get_Rect().set_String("170,540,570,555");
    doc3.AddHtml(this.str_5);
    doc3.get_Rect().set_String("40,500, 230, 515");
    doc3.AddHtml(this.str_6);
    doc3.get_Rect().set_String("235,500,360,515");
    doc3.AddHtml(this.str_7);
    doc3.get_Rect().set_String("370,500, 570, 515");
    doc3.AddHtml(this.str_8);
    doc3.get_Rect().set_String("40,465,305,485");
    doc3.AddHtml(this.str_9);
    doc3.get_Rect().set_String("310,465, 570,485");
    doc3.AddHtml(this.str_10);
    doc3.get_Rect().set_String("40,440,305,453");
    doc3.AddHtml(this.str_11);
    doc3.get_Rect().set_String("310,440, 570, 453");
    doc3.AddHtml(this.str_12);
    doc3.get_Rect().set_String("39,412, 51, 425");
    doc3.AddHtml(this.str_13[0]);
    doc3.get_Rect().set_String("39,402, 51, 413");
    doc3.AddHtml(this.str_13[1]);
    doc3.get_Rect().set_String("39,390, 51, 401");
    doc3.AddHtml(this.str_13[2]);
    doc3.get_Rect().set_String("39,378, 51, 389");
    doc3.AddHtml(this.str_13[3]);
    doc3.get_Rect().set_String("200,412, 212, 425");
    doc3.AddHtml(this.str_13[4]);
    doc3.get_Rect().set_String("200,402, 212, 413");
    doc3.AddHtml(this.str_13[5]);
    doc3.get_Rect().set_String("200,390, 212, 401");
    doc3.AddHtml(this.str_13[6]);
    doc3.get_Rect().set_String("399,412, 410, 425");
    doc3.AddHtml(this.str_13[7]);
    doc3.get_Rect().set_String("399,402, 410, 413");
    doc3.AddHtml(this.str_13[8]);
    doc3.get_Rect().set_String("399,390, 410, 401");
    doc3.AddHtml(this.str_13[9]);
    doc3.get_Rect().set_String("40,260,570,368");
    doc3.AddHtml(this.str_14);
    doc3.get_Rect().set_String("40,200,570,235");
    doc3.AddHtml(this.str_15);
    doc3.get_Rect().set_String("40,120,300,140");
    doc3.AddHtml(this.str_16);
    doc3.get_Rect().set_String("310,120,570,140");
    doc3.AddHtml(this.str_17);
    doc3.get_Rect().set_String("362,71,468,90");
    doc3.AddHtml(this.str_18);
    doc3.get_Rect().set_String("485,71,570,90");
    doc3.AddHtml(this.str_19);
    doc3.get_Rect().set_String("40,40,210,60");
    doc3.AddHtml(this.str_20);
    doc3.get_Rect().set_String("235,40,390,60");
    doc3.AddHtml(this.str_21);
    doc3.get_Rect().set_String("400,40,570,60");
    doc3.AddHtml(this.str_22);
    this.Ser = this.sID.ToString();
    using (SqlConnection connection = new SqlConnection(this.strConnString))
    {
        connection.Open();
        string cmdText = "insert into Image (Ser,ImageData) values(@Ser, @ImageData)";
        SqlCommand command = new SqlCommand(cmdText, connection);
        try
        {
            using (MemoryStream stream = new MemoryStream())
            {
                doc3.Save(stream);
                byte[] data = doc3.GetData();
                command.Parameters.Add(new SqlParameter("@Ser", this.Ser));
                command.Parameters.Add(new SqlParameter("@ImageData", data));
                command.ExecuteNonQuery();
            }
        }
        catch (SqlException exception)
        {
            if (string.Compare(exception.Message.ToString().Substring(0, 0x18), "Violation of PRIMARY KEY") == 0)
            {
                SqlCommand command2 = new SqlCommand("delete from image where ser = '" + this.Ser + "'", connection);
                command2.ExecuteNonQuery();
                try
                {
                    command2.ExecuteNonQuery();
                }
                catch (SqlException)
                {
                }
                finally
                {
                    command.ExecuteNonQuery();
                }
            }
        }
    }
    doc3.Clear();
}

//感激你的, // RN

0 个答案:

没有答案