Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

Cara menggunakan ASP untuk menghasilkan dokumen Rich Text Format (RTF) ke sungai untuk Microsoft Word

PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.

Klik disini untuk melihat versi Inggris dari artikel ini:270906
RINGKASAN
Artikel ini menjelaskan bagaimana Anda dapat menghasilkan Rich Text File format (RTF) dengan ASP script dan kemudian streaming file-file ke Microsoft Kata. Teknik ini menyediakan alternatif untuk sisi server Otomatisasi Microsoft Word untuk dokumen run-time generasi.

Catatan Artikel ini memerlukan bahwa Anda memiliki salinan dari database contoh Northwind.mdb diinstal dari Microsoft Access 2000, dari Microsoft Access 2002, atau dari Microsoft Office Access 2003.
INFORMASI LEBIH LANJUT
Ada kekurangan untuk menghasilkan dokumen Word dengan ASP sisi server Otomatisasi:
  • Kinerja Microsoft Word adalah keluar-Otomasi Server; panggilan keluar dari proses memakan waktu lebih lama untuk mengeksekusi.

  • Skalabilitas sebagai otomatisasi server, Microsoft Word memiliki substansial atas karena Winword.exe file harus diambil dalam rangka untuk Anda untuk menuai keuntungan dari kata kaya object model.
Dengan menghasilkan dokumen Anda dari awal dan tanpa menggunakan Kata object model, Anda dapat membuat aplikasi ASP Anda lebih scaleable dan juga meningkatkan kinerja. Pendekatan ini digunakan dalam berikut sampel yang menunjukkan bagaimana untuk menggunakan FileSystemObject untuk membuat berkas RTF yang dapat ditafsirkan dalam Microsoft Word pada browser klien.

Contoh pertama menunjukkan cara menggunakan ASP untuk membuat RTF dokumen yang berisi header dan footer, berisi meja, dan menggunakan font yang berbeda gaya dan warna untuk teks di seluruh dokumen. Pertama contoh menggunakan ADO untuk mengakses data dari Northwind akses sampel database untuk membuat dokumen 90 plus halaman.

Contoh kedua menunjukkan bagaimana untuk membuat dokumen RTF mirip dengan gabungan surat Word. Hasil dokumen berisi header dan footer, berbagai format paragraf dan halaman istirahat, dan menggunakan font yang berbeda gaya dan jenis melalui dokumen. Ini contoh juga menggunakan ADO untuk mengakses data dari Northwind database untuk membuat 170 plus halaman dokumen.

Catatan Rich Text Format (RTF) spesifikasi adalah publik spesifikasi untuk menghasilkan kompatibel RTF file teks. Anda dapat menggunakan dokumentasi untuk spesifikasi pada Pengembang Microsoft berikut Situs Web Network (MSDN) sebagai sumber daya untuk membantu Anda membangun Anda sendiri RTF file. Namun, spesifikasi disediakan "sebagai-adalah", dan tidak supportted oleh Dukungan teknis Microsoft. Untuk versi terbaru dari spesifikasi RTF, Lihat situs Website MSDN berikut:

ASP sampel 1

ASP berikut menunjukkan penciptaan RTF 90 plus halaman dokumen yang berisi laporan dari angka-angka yang dihitung.

Catatan Variabel sConn dalam kode ini sampel berisi path ke Northwind database. Mengkonfirmasi bahwa jalan yang diberikan tepat untuk instalasi Office. Anda juga harus memberikan Menulis akses ke folder yang berisi ASP sehingga dokumen dapat dibuat. Akses ini harus dibatasi untuk individu tertentu di bawah Windows NT domain, tetapi dapat diterapkan untuk Semua orang untuk akses anonim.
<%@ Language=VBScript %><%   Dim sRTF, sFileName, sConn   sConn = "c:\program files\microsoft office\office\samples\northwind.mdb"   Response.Buffer = True   'Create the file for the RTF   Dim fso, MyFile   Set fso = CreateObject("Scripting.FileSystemObject")   sFileName = "sample1.doc"   Set MyFile = fso.CreateTextFile(Server.MapPath(".") & "\" & _                                   sFileName, True)   MyFile.WriteLine("{\rtf1")   'Write the color table (for use in background and foreground colors)   sRTF = "{\colortbl;\red0\green0\blue0;\red0\green0\blue255;" & _          "\red0\green255\blue255;\red0\green255\blue0;" & _          "\red255\green0\blue255;\red255\green0\blue0;" & _          "\red255\green255\blue0;\red255\green255\blue255;}"   MyFile.WriteLine(sRTF)   'Write the title and author for the document properties   MyFile.WriteLine("{\info{\title Sample RTF Document}" & _                    "{\author Microsoft Developer Support<AngularNoBind>}}</AngularNoBind>")   'Write the page header and footer   MyFile.WriteLine("{\header\pard\qc{\fs50 " & _                    "ASP-Generated RTF\par}{\fs18\chdate\par}\par\par}")   MyFile.WriteLine("{\footer\pard\qc\brdrt\brdrs\brdrw10\brsp100" & _                    "\fs18 Page " & _                    "{\field{\*\fldinst PAGE}{\fldrslt 1<AngularNoBind>}}</AngularNoBind> of " & _                    "{\field{\*\fldinst NUMPAGES}{\fldrslt 1<AngularNoBind>}}</AngularNoBind> \par}")   'Write a sentence in the first paragraph of the document   MyFile.WriteLine("\par\fs24\cf2 This is a sample \b RTF \b0 " & _                    "document created with ASP.\cf0")   'Connect to the database in read-only mode   Dim conn, rs   Set conn = Server.CreateObject("ADODB.Connection")   conn.Provider = "Microsoft.Jet.OLEDB.4.0"   conn.Mode = 1    'adModeRead=1   conn.Open sConn            'Execute a query that returns ID, Product name and amount of sale   Set rs = Server.CreateObject("ADODB.Recordset")   rs.Open "SELECT [Order Details].OrderID AS ID, " & _           "Products.ProductName AS Name, " & _           "[Order Details].[UnitPrice]*[Quantity] AS Amount " & _           "FROM Products INNER JOIN [Order Details] ON " & _           "Products.ProductID = [Order Details].ProductID " & _           "ORDER BY [Order Details].OrderID", conn, 3   'adOpenStatic = 3   MyFile.WriteLine("{") 'Start table   MyFile.WriteLine("\par\par\fs24")   'Write the table header row (appears at top of table on each page)   sRTF = "\trowd\trhdr\trgaph30\trleft0\trrh262" & _          "\cellx2000\cellx7000\cellx9000" & _          "\pard\intbl\qc\b\i\ul Order ID \ul0\i0\b0\par\cell" & _          "\pard\intbl\ql\b\i\ul Product \ul0\i0\b0\par\cell" & _          "\pard\intbl\qr\ul\b\i Amount \ul0\i0\b0\par\cell" & _          "\pard\intbl\row"   MyFile.WriteLine(sRTF)   dim LastID   dim CurID   dim CurTotal   dim bFirstRow   bFirstRow=true   do while not (rs.eof)     if LastID<>rs("ID").Value and not(bFirstRow)  Then        'Starting on a row for a different id, so add the last total and         'then a blank row        sRTF = "\trowd\trgaph30\trleft0\trrh262" & _               "\cellx2000\cellx7000\clbrdrb\brdrdb\cellx9000" & _               "\pard\intbl\cell\pard\intbl\cell\pard\intbl\qr\b " & _               FormatCurrency(CurTotal, 0, False, False, True) & _               "\b0\cell\pard\intbl\row" & _               "\trowd\trgaph30\trleft0\trrh262" & _               "\cellx2000\cellx7000\cellx9000" & _               "\pard\intbl\cell\pard\intbl\cell\pard\intbl\cell" & _               "\pard\intbl\row"        MyFile.WriteLine(sRTF)        CurID = rs("ID").Value        CurTotal = 0     elseif bFirstRow then        CurID = rs("ID").Value     else        CurID = ""     end if     'Add a new row with the ID, the Product name and the amount     'Note: Amounts over 1000 are formatted with red.     sRTF = "\trowd\trgaph30\trleft0\trrh262" & _            "\cellx2000\cellx7000\cellx9000" & _            "\pard\intbl\qc " & CurID & "\cell" & _            "\pard\intbl\ql " & rs("Name").Value & "\cell"     If rs("Amount").Value >1000 Then        sRTF = sRTF & "\pard\intbl\qr\cf6 " & _               FormatNumber(rs("Amount").Value, 0, False, False, True) & _               "\cf0\cell\pard\intbl\row"     else        sRTF = sRTF & "\pard\intbl\qr " & _               FormatNumber(rs("Amount").Value, 0, False, False, True) & _               "\cell\pard\intbl\row"     end if     MyFile.WriteLine(sRTF)     LastID = rs("ID").Value     CurTotal = CurTotal + rs("Amount").Value     rs.MoveNext     bFirstRow=false   loop   MyFile.WriteLine("}") 'End Table   'Add a page break and then a new paragraph   MyFile.WriteLine("\par \page")   MyFile.WriteLine("\pard\fs18\cf2\qc " & _                    "This sample provided by Microsoft Developer Support.")   'Close the recordset and database   rs.Close   conn.Close   Set rs = Nothing   Set conn = Nothing      'close the RTF string and file   MyFile.WriteLine("}")   MyFile.Close   Response.Write _       "<META HTTP-EQUIV=""REFRESH"" Content=""0;URL=" & sFileName & """>" %>				

ASP sampel 2

ASP berikut menunjukkan simulasi gabungan surat Word atau surat formulir. Setiap halaman di 170 plus halaman dokumen yang dihasilkan dari merekam dalam recordset ADO.

Catatan Variabel sConn dalam kode ini sampel berisi path ke Northwind database. Mengkonfirmasi bahwa jalan yang diberikan tepat untuk instalasi Office. Anda juga harus memberikan Menulis akses ke folder yang berisi ASP sehingga dokumen dapat dibuat. Akses ini harus dibatasi untuk individu tertentu di bawah NT domain, tetapi dapat diterapkan untuk Semua orang untuk akses anonim.
<%@ Language=VBScript %><%   Dim sRTF, sConn   sConn = "c:\program files\microsoft office\office\samples\northwind.mdb"   Response.Buffer = True   'Create the file for the RTF   Dim fso, MyFile, sFileName   Set fso = CreateObject("Scripting.FileSystemObject")   sFileName = "sample2.doc"   Set MyFile = fso.CreateTextFile(Server.MapPath(".") & "\" & _                                   sFileName, True)   MyFile.WriteLine("{\rtf1")   'Write the font table   sRTF = "{\fonttbl {\f0\froman\fcharset0 Times New Roman;}" & _          "{\f1\fswiss\fcharset0 Arial;}" & _          "{\f2\fmodern\fcharset0 Courier New;<AngularNoBind>}}</AngularNoBind>"   MyFile.WriteLine sRTF   'Write the title and author for the document properties   MyFile.WriteLine("{\info{\title Sample RTF Document}" & _                    "{\author Microsoft Developer Support<AngularNoBind>}}</AngularNoBind>")   'Write the document header and footer   MyFile.WriteLine("{\header\pard\qc\brdrb\brdrs\brdrw10\brsp100" & _                    "{\fs50 Northwind Traders} \par}")   MyFile.WriteLine("{\footer\pard\qc\brdrt\brdrs\brdrw10\brsp100" & _                    "{\fs18 Questions?\par Call (111)-222-3333, " & _                    " Monday-Friday between 8:00 am and 5:00 pm} \par}")   'Connect to the database in read-only mode   Dim conn, rs   Set conn = Server.CreateObject("ADODB.Connection")   conn.Provider = "Microsoft.Jet.OLEDB.4.0"   conn.Mode = 1    'adModeRead=1   conn.Open sConn   'Execute a query that returns ID, Product name and amount of sale   Set rs = Server.CreateObject("ADODB.Recordset")   rs.Open "SELECT Orders.ShippedDate, Orders.ShipVia, " & _           "Orders.OrderDate, Orders.OrderID, " & _           "Customers.ContactName FROM Customers INNER JOIN Orders ON " & _           "Customers.CustomerID = " & _           "Orders.CustomerID WHERE (((Orders.ShippedDate) Between " & _           "#1/1/1998# And #3/31/98#))",conn,3  'adOpenStatic = 3   Do While Not (rs.eof)          'Write the "body" of the form letter         MyFile.WriteLine   "\fs26\f1"   'Default font     MyFile.WriteLine   "\pard"     MyFile.WriteLine   "\par\par\par\par"     MyFile.WriteLine   "\par RE: Order #" & rs.Fields("OrderID").Value     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\par " & rs.Fields("ContactName").Value & ", "     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\par Thank you for your order on " & _                        rs.Fields("ShippedDate").Value & _                        ". Your order has been shipped: "     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\pard \li720 {\f2"     MyFile.WriteLine   "\par \b Order Number \b0 \tab " & _                        rs.Fields("OrderID").Value     MyFile.WriteLine   "\par \b Shipped By \b0 \tab " & _                        rs.Fields("ShipVia").Value     MyFile.WriteLine   "\par \b Shipped On \b0 \tab " & _                        rs.Fields("ShippedDate").Value     MyFile.WriteLine   "\par}"         MyFile.WriteLine   "\pard"     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\par Northwind Traders is committed to " & _                        "bringing you products of the " & _                        "highest quality from all over the world. If " & _                        "at any time you are not completely satisfied " & _                        "with any of our products, you may " & _                        "return them to us for a full refund."     MyFile.WriteLine   "\par"     MyFile.WriteLine   "\pard {\fs18 \qc \i"     MyFile.WriteLine   "\par Thank you for choosing Northwind Traders!"     MyFile.WriteLine   "\par}"     rs.MoveNext     'Add a page break and then a new paragraph     If Not(rs.eof) Then MyFile.WriteLine("\pard \page")   Loop   'Close the recordset and database   rs.Close   conn.Close   Set rs = Nothing   Set conn = Nothing      'close the RTF string and file   MyFile.WriteLine("}")   MyFile.Close   Response.Write _        "<META HTTP-EQUIV=""REFRESH"" Content=""0;URL=" & sFileName & """>"%> 				
REFERENSI
Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
257757Pertimbangan untuk otomatisasi Office sisi server
193998 Bagaimana untuk membaca dan menampilkan data biner di ASP
266263 BUG: Word 2000 dan Excel 2000 menampilkan ASP sumber ketika menggunakan jenis MIME aliran data
247318 BUG: Word 2000 dan Excel 2000 tidak mengalihkan dengan benar ketika menggunakan Response.Redirect
Editor Richtext teks kaya WD2007

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 270906 - Tinjauan Terakhir: 09/22/2011 13:06:00 - Revisi: 2.0

Microsoft Office Word 2007, Microsoft Word 2000, Microsoft Word 97 Standard Edition, Microsoft Active Server Pages 4.0

  • kbexpertiseinter kbautomation kbfso kbhowto kbprogramming kbmt KB270906 KbMtid
Tanggapan