Mẹo Lập Trình p 7

Chia sẻ: Yukogaru | Ngày: | Loại File: PDF | Số trang:7

0
69
lượt xem
15
download

Mẹo Lập Trình p 7

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Part 7 Xuất(Generate) động (Dynamically ) tập tin PDF sử dụng ASP.NET Hiện nay có rất nhiều cách để xuất động các tập tin PDF. Cách phổ biến được biết là sử dụng ASP với Acrobat Full Vesion (4.0 hoặc 5.0) và Acrobat FDF Toolkit. Với Microsoft.NET rất nhiều lập trình viên đang lúng túng để thực hiện công việc này. i-Today xin hướng dẫn các bạn cách làm.

Chủ đề:
Lưu

Nội dung Text: Mẹo Lập Trình p 7

  1. Part 7 Get LastName = mstrLastName End Get Set(ByVal Value As String) mstrLastName = Value End Set End Property Public Property DOB() As Date Get DOB = mdtDOB End Get Set(ByVal Value As Date) mdtDOB = Value If DateDiff(DateInterval.Year, Value, Now) > 60 Then RaiseEvent Senior() End If End Set End Property End Class Bước 3: Một khi assembly được tạo chúng ta tạo một Type librảy để COM Client có thể sử dụng Assembly. Chúng ta theo các option sau cho COM:  Type Library Exporter Sử dụng Type Library Exporter (Tlbexp.exe) các lớp và giao diện (interface) được chứa trong một assembly được chuyển thành dạng một COM Lib. Một khi TypeLib được tạo, COM client có thể tạo một instance của các lớp .NET và gọi các phương thức như chúng là một đối tượng COM.  TypeLibConverter Class TypeLibConverter Class của System.Runtime.InteropServices namespace cung cấp các phương thức để chuyển một assembly thành một TypeLib.  Assembly Registration Tool Assembly Registration Tool (Regasm.exe), đọc metadata trong một assembly và thêm các mục cần thiết vào registry. Assembly Registration tool có thể generate và đăng ký một loại thư viện khi bạn sử dụng /tlb: option. COM clients yêu cầu các loại thư viện đó khi cài đạt vào trong Windows registry. Nếu không sử dụng option này, Regasm.exe chỉ đăng kýnhư là một assembly, không như type library.  The .NET Services Installation Tool (Regsvcs.exe) (xem thêm MSDN ) Trong ví dụ của chúng ta sẽ sử dụng RegAsm.exe để tạo TypeLib từ các class và Interface được định nghĩa trong COMInterOp.dll. regasm ComInterOp.dll /tlb:ComInterOp.tlb Bước 4: Bây giờ .NET component (COMInterOp.dll) nên được cài vào GAC (global assembly cache) để làm việc với COM Code dir>Gacutil -i COMInterOp.dll Bước 5: Sử dụng 45
  2. Copyright © http://vndownloads.net COM Component 'Class Emps Option Explicit Private Emps As Scripting.Dictionary Private Sub Class_Initialize() Set Emps = New Scripting.Dictionary Dim objEmp As CEmp Set objEmp = New CEmp objEmp.InitMe ''John'', ''Doe'', ''01/01/1970'' Emps.Add 0, objEmp Set objEmp = New CEmp objEmp.InitMe ''Mike'', ''Edwards'', ''01/01/1941'' Emps.Add 1, objEmp Set objEmp = New CEmp objEmp.InitMe ''Debra'', ''Bunn'', ''01/01/1930'' Emps.Add 2, objEmp End Sub Public Function PrintEmps() As String PrintEmps = PrintBool(True) & PrintBool(False) End Function Public Function PrintBool(ByVal xblnSeniors As Boolean) As String Dim intCount As Integer Dim objEmp As CEmp Dim strPrint As String For intCount = 0 To Emps.Count - 1 Set objEmp = Emps(intCount) If xblnSeniors = objEmp.IsSenior Then strPrint = strPrint & PrintEmp(objEmp) & Chr(13) End If Next intCount PrintBool = strPrint End Function Private Function PrintEmp(ByVal xobjEmp As CEmp) As String Dim strPrint As String strPrint = xobjEmp.FirstName & Chr(9) & xobjEmp.LastName PrintEmp = strPrint End Function 'End Class Emps 'Class Emp Option Explicit Private mblnIsSenior As Boolean Private WithEvents mobjEmp As ComInterOp.CEmp Public Sub InitMe(ByVal xstrFName As String, _ ByVal xstrLName As String, ByVal xdtDOB As Date) Set mobjEmp = New ComInterOp.CEmp 46
  3. Copyright © http://vndownloads.net With mobjEmp .FirstName = xstrFName .LastName = xstrLName .DOB = xdtDOB End With End Sub Public Property Get FirstName() As String FirstName = mobjEmp.FirstName End Property Public Property Get LastName() As String LastName = mobjEmp.LastName End Property Public Property Get IsSenior() As Boolean IsSenior = mblnIsSenior End Property Private Sub mobjEmp_Senior() mblnIsSenior = True End Sub 'End Class Emp Xuất(Generate) động (Dynamically ) tập tin PDF sử dụng ASP.NET Hiện nay có rất nhiều cách để xuất động các tập tin PDF. Cách phổ biến được biết là sử dụng ASP với Acrobat Full Vesion (4.0 hoặc 5.0) và Acrobat FDF Toolkit. Với Microsoft.NET rất nhiều lập trình viên đang lúng túng để thực hiện công việc này. i-Today xin hướng dẫn các bạn cách làm. Các công cụ 1. Adobe Acrobat 5.0 Full Version, không phải Acrobat Reader 5.0 2. Acrobat FDF Toolkit Version 5, free downloaded 3. Microsoft .NET Framework SDK with Service Pack 1 Platform Windows 2000 Server (Service Pack 2), Internet Information Server 5.0 Cài đặt 1. Cài đặt Adobe Acrobat 5.0 Full Version. 2. Go to http://partners.adobe.com/asn/developer/acrosdk/forms.html để download the Acrobat FDF Toolkit package. 3. Cài đặt theo hướng dẫn http://partners.adobe.com/asn/developer/acrosdk/docs/fdftk/FDFtkRef.pdf. Giản nén Acrobat FDF Toolkit package, tìm files: FdfAcX.dll và FdfTk.dll. Chép vào thư mục \WINNT\system32 , và đăng ký Regsvr32 FdfAcX.dll. 4. Tạo .NET compatible wrapper cho FdfAcX.dll dùng TlbImp.exe(Type Library Importer). Trong cửa sổ Command Window, đánh: tlbimp FdfAcX.dll /out:FdfAcX_NET.dll 5. Đặt FdfAcx_NET.dll đã được generated CLR assembley vào thư mục bin của chương trình của bạn. Nên nhớ 47
  4. Copyright © http://vndownloads.net các tập tin được gen bởi Tlbimp.exe cần đặt trong thư mục chương trình\bin của ASP.NET. Trong ASP, dùng VBScript Set FdfAcX = Server.CreateObject(FdfApp.FdfApp) FdfAcX.FDFSetFile http://www.yourserver.com/test.pdf FdfAcX.FDFSetValue txtMemo, This is a test, false FdfAcX.FDFSaveToFile C:\temp\test.fdf FdfAcX.FDFClose Set FdfAcX = nothing ASP.NET FdfAppClass FdfAcX_App = new FdfAppClass(); FdfDoc FdfAcX_Doc = (FdfDoc)FdfAcX_App.FDFCreate(); FdfAcX_Doc.FDFSetFile(http://www.yourserver.com/test.pdf); FdfAcX_Doc.FDFSetValue(txtMemo, This is a test, false); FdfAcX_Doc.FDFSaveToFile(@c:\temp\test.fdf); FdfAcX_Doc.FDFClose(); VB.NET: Dim FdfAcX_App As FdfAppClass FdfAcX_App = new FdfAppClass() Dim FdfAcX_Doc As FdfDoc FdfAcX_Doc = FdfAcX_App.FDFCreate FdfAcX_Doc.FDFSetFile(http://www.yourserver.com/test.pdf) FdfAcX_Doc.FDFSetValue(txtMemo, This is a test , false) FdfAcX_Doc.FDFSaveToFile(c:\temp\test.fdf) FdfAcX_Doc.FDFClose Truyền file được gen đến người sử dụng protected void Page_Load(Object Src, EventArgs E) { if (!IsPostBack) { Response.ContentType=Application/vnd.fdf; Response.WriteFile(@c:\temp\test.fdf); Response.End(); } } Tạo một Pop-up Canlendar (ASP.NET, VB.NET) Bạn sử dụng Calender Control và Panel Control. Panel Control được sử dụng để tạo hiệu ứng float trên trang. Bằng cách đặt calendar control trong Panel Control, bạn có thể thể dễ dàng xác định vị trí và thời điểm hiển thị Panel Control. 48
  5. Copyright © http://vndownloads.net Tạo User Class Điều đầu tiên cần làm là tạo một tập tin class có chứa Panel và Calendar Server control. [popUpCalendar.ascx] Sau đó là tạo code để phục vụ việc hiển thị [popUpCalendar.ascx.vb] Public Class popUpCalendar : Inherits System.Web.UI.UserControl Protected WithEvents Calendar1 As System.Web.UI.WebControls.Calendar Protected WithEvents pnlCalendar As System.Web.UI.WebControls.Panel #Region '' Web Form Designer Generated Code '' 'This call is required by the Web Form Designer. Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init InitializeComponent() End Sub #End Region Public Sub displayCalendar(ByVal sCalToolText As String, _ ByVal dSelectedDate As Date, _ ByVal sDateFieldName As String, _ ByVal iTop As Integer, _ 49
  6. Copyright © http://vndownloads.net ByVal iLeft As Integer) '************************************************************************ 'Hiển thị và dấu calendar '************************************** ********************************** If pnlCalendar.Visible = True And Calendar1.Attributes.Item(''selectedfield'') sDateFieldName Then hideCalendar() End If If pnlCalendar.Visible = False Then pnlCalendar.Style.Item(''top'') = iTop pnlCalendar.Style.Item(''left'') = iLeft If IsDate(dSelectedDate) Then Calendar1.SelectedDate = dSelectedDate Calendar1.VisibleDate = dSelectedDate Else Calendar1.SelectedDate = #12:00:00 AM# Calendar1.VisibleDate = Now End If Calendar1.ToolTip = sCalToolText Calendar1.Attributes.Item(''SelectedField'') = sDateFieldName pnlCalendar.Visible = True Else hideCalendar() End If End Sub Public Sub Calendar1_SelectionChanged(ByVal sender As System.Object, ByVa e As l System.EventArgs) Handles Calendar1.SelectionChanged Dim txtDate As TextBox txtDate = Page.FindControl(Calendar1.Attributes.Item(''SelectedField'')) txtDate.Text = Calendar1.SelectedDate hideCalendar() End Sub Public Sub hideCalendar() pnlCalendar.Visible = False End Sub End Class Sau đây là ví dụ về cách sử dụng User Control trên [dispCalendar.aspx] dispCalendar 50
  7. Copyright © http://vndownloads.net Example Use of Custom Calendar Control Start Date: End Date: [dispCalendar.aspx.vb] Public Class dispCalendar Inherits System.Web.UI.Page Protected WithEvents txtStartDate As System.Web.UI.WebControls.TextBox Protected WithEvents btnEndDate As System.Web.UI.WebControls.ImageButton Protected WithEvents btnStartDate As System.Web.UI.WebControls.ImageButton Protected WithEvents txtEndDate As System.Web.UI.WebControls.TextBox Protected WithEvents myCalendar As popUpCalendar #Region '' Web Form Designer Generated Code '' 'This call is required by the Web Form Designer. Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 51
Đồng bộ tài khoản