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

我如何理解创建pdf的方法?C#,c#,.net,pdf,reflector,C#,.net,Pdf,Reflector,这个方法是从.wsp的.NET Reflector转换而来的,没有文档。该应用程序的目的是创建一个可签名的.pdf表单。无法使用第三方甚至开源,因此iTextSharp、PDFSharp等都不是选项,我是一个新手,正在尽最大努力提高我的学习曲线 我已经向.cs“Method”文件添加了引用/使用指令,以重新创建aspx.cs文件。我剩下的最后一个错误是: '找不到类型或命名空间名称'Doc'(是否缺少using指令或程序集引用?' 我找不到可以让“Doc”在任何地方工作的参考资料。”“文档”和“

这个方法是从.wsp的.NET Reflector转换而来的,没有文档。该应用程序的目的是创建一个可签名的.pdf表单。无法使用第三方甚至开源,因此iTextSharp、PDFSharp等都不是选项,我是一个新手,正在尽最大努力提高我的学习曲线

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

我找不到可以让“Doc”在任何地方工作的参考资料。”“文档”和“文字”是我能在网上找到的两个最能帮助我的东西,但对提高我的理解没有任何帮助。 这个方法大家都熟悉吗

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

它将与此代码的源代码位于同一个项目中likely@Sayse:这些不足以避免“找不到命名空间名称“Doc”
当这位绅士把他使用.NET Reflector从dll获得的源代码的方法交给我时,他去度假了。我已将.NETReflector下载到我的开发机器上,并将研究如何提取隐藏的方法/代码。NetReflector在VisualStudio2010中或作为桌面应用程序,对我(一个新手)来说似乎有点困惑。欢迎所有建议。我的观点是堆栈溢出在这种情况下无法帮助您,因为Doc将是您从中发现的项目中的一个类,您的最佳选择可能是查看是否有任何其他方法调用
Doc
typeUnderstand。谢谢你,赛斯