Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Microsoft Word'e akış sağlanacak bir Zengin Metin Biçimi (RTF) belgesi oluşturmak için nasıl ASP kullanılır

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:270906
Özet
Makalede, ASP komut dosyası, zengin metin biçimi (RTF) dosyaları oluşturur ve sonra bu dosyaları Microsoft Word'e akış nasıl kaldırılacağı anlatılır. Bu teknik, çalıştırma belge oluşturma için Microsoft Word, sunucu tarafında Otomasyon bir alternatif sağlar.

Not Bu makalede, bir kopyasını Northwind.mdb örnek veritabanını Microsoft Access 2000, Microsoft Access 2002 veya Microsoft Office Access 2003 yüklü olmasını gerektirir.
Daha fazla bilgi
ASP ile Word belgelerini oluşturmak için dezavantajları vardır sunucu tarafında Otomasyon:
  • Bir işlem dışı Otomasyon performans Microsoft Word ise sunucu; işlem dışı aramaları alma yürütmek için daha uzun.

  • Winword.exe dosyasını sağlamak için Word'ün zengin bir nesne modeli yararları reap yüklenmesi gerekir, çünkü ölçeklenebilirlik farklı bir Otomasyon sunucusu için Microsoft Word önemli ek yük var.
Belgelerinizi sıfırdan ve Word nesne modeli kullanmadan oluşturarak, ASP uygulamanızın daha ölçeklenebilir hale getirebilir ve ayrıca performansı artırmak. Bu yaklaşım, FileSystemObject yorumlanacak RTF dosyası Microsoft Word'de tarayıcı istemcilerinde oluşturmak için nasıl kullanılacağını gösteren aşağıdaki örneklerde kullanılır.

Ilk örnek ASP üstbilgi ve altbilgileri içeren bir tablo ve belge boyunca metni farklı yazı tipi stilleri ve renkleri kullanan bir RTF belgesi oluşturmak için nasıl kullanılacağını gösterir. Ilk örnek, Northwind Access veritabanını, 90 plus sayfalı bir belgeyi oluşturmak için örnek verilere erişmek için ADO kullanır.

Ikinci örnek bir RTF belgesi Word adres-mektup birleştirme için benzer oluşturulması gösterilmiştir. Sonuç belgesi üstbilgi ve altbilgileri içeren, çeşitli biçimlendirme ve sayfa sonları ve <a2>kullanan farklı bir yazı tipi stilleri</a2> ve <a4>türleri belgenin paragraf. Bu örnek, 170 plus sayfalı bir belgeyi oluşturmak için Northwind veritabanından verilere erişmek için ADO'nı da kullanır.

Not Zengin metin biçimi (RTF) belirtimi, RTF uyumlu metin dosyaları oluşturmak için ortak bir belirtimdir. RTF dosyaları oluşturmanıza yardımcı olmak için aşağıdaki Microsoft Developer Network (MSDN) Web sitesinde bir kaynak olarak belirtimi için belgeleri kullanabilirsiniz. Belirtim ancak sağlanan "olarak-olan", ve Microsoft Teknik Destek'e tarafından supportted değil. RTF belirtimi en son sürümü için aşağıdaki MSDN Web sitesine bakın:

ASP örneği 1

Aşağıdaki ASP 90 plus sayfalı bir RTF oluşturulmasını gösterir raporu hesaplanmış şekiller içeren belge.

Not Bu kod örneğinde sConn değişken, Northwind veritabanının yolunu içerir. Sağlanan yol, Office yükleme için uygun olduğunu doğrulayın. Ayrıca, ASP, böylece belgeyi oluşturan içeren klasörüne yazma erişimi sağlamak gerekir. Bu erişim, Windows NT etki alanı altında belirli kişiler için sınırlı olmalıdır; Everyone grubuna Anonim erişim için uygulanabilir.
<%@ 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 Örnek 2

Aşağıdaki ASP, bir Word adres-mektup birleştirme veya mektup formu bir benzetimi gösterir. Her sayfayı 170 plus sayfalık belge bir ADO kayıt kümesindeki bir kaydı oluşturulur.

Not Bu kod örneğinde sConn değişken, Northwind veritabanının yolunu içerir. Sağlanan yol, Office yükleme için uygun olduğunu doğrulayın. Ayrıca; bu nedenle, belgeyi oluşturan ASP içeren klasörüne yazma erişimi sağlamanız gerekir. Bu erişim, bir NT altında belirli kişiler için sınırlı olmalıdır etki alanı, ancak Everyone grubuna Anonim erişim için uygulanabilir.
<%@ 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 & """>"%> 				
Referanslar
Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
257757Sunucu tarafında Office Otomasyonu ile ilgili konular
193998ASP'de ikili dosya verileri nasıl okunur ve görüntülenir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
266263Hata: Word 2000 ve Excel 2000 ASP kaynağını akış verileri için MIME türü kullanılırken görüntülemek
247318Hata: Word 2000 ve Excel 2000 doğru Response.Redirect kullanırken yönlendirmeyin
Zengin metin RichText WD2007

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 270906 - Son İnceleme: 04/19/2007 18:37:17 - Düzeltme: 8.1

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

  • kbmt kbexpertiseinter kbautomation kbfso kbhowto kbprogramming KB270906 KbMttr
Geri bildirim