วิธีการใช้ ASP.NET หรือ Visual Basic .NET การแปลง XML ไปเป็นรูปแบบข้อความ Rich สำหรับ Microsoft Word 2002

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 311461 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

ใช้คำแนะนำทีละขั้นตอนนี้เพื่อสร้างรูปแบบข้อความ Rich (RTF) จาก Extensible Markup ภาษา (XML) โดยใช้ Visual Basic .NET

รูปแบบข้อความ rich เป็นรูปแบบที่ขึ้นอยู่กับข้อความที่ encodes ข้อความที่จัดรูปแบบ เค้าโครงเอกสาร และกราฟิก โดยทั่วไปซึ่งถูกใช้กับ Microsoft Word เนื่องจาก RTF จะขึ้นอยู่กับข้อความ ดังกล่าวสามารถถูกสร้างได้ง่ายขึ้น ด้วยรหัส ถ้าคุณมีข้อมูล XML ที่คุณต้องการแสดงใน Word เป็นเอกสารประเภทจดหมายเวียนหรือแค็ตตาล็อก/รายการ แล้ว transforming ข้อมูล XML ของคุณเข้าไปในสตรีม RTF อาจมีการแก้ไขปัญหาที่เหมาะสำหรับคุณ และ ใน fact ถ้าคุณกำลังพัฒนาโซลูชันที่คุณสร้างเอกสารบนเว็บเซิร์ฟเวอร์ จากนั้น สร้างเอกสารเหล่านั้นโดยใช้ข้อความโดยใช้รูปแบบ เช่น HTML หรือ RTF เกินที่ต้องใช้ฝั่งเซิร์ฟเวอร์ Automation ของ Word

บทความนี้แสดงตัวอย่างรหัส กับการแนะนำทีละขั้นตอน การแปลง XML เป็น RTF สำหรับการแสดงผลใน Word โดยใช้หลาย approaches:
  • บันทึกแบบ RTF ลงในแฟ้ม และเปิดใน Word
  • ถ่ายโอน RTF Word โดยใช้ Windows คลิปบอร์ด
  • สตรีม RTF ให้ Word โฮสต์ใน Microsoft Internet Explorer จากแอพลิเคชันเว็บ ASP.NET ที่

ข้อมูลจำเพาะเกี่ยวกับการจัดรูปแบบ Rich Text

ข้อมูลจำเพาะเกี่ยวกับการจัดรูปแบบข้อความ Rich (RTF) คือ ข้อมูลจำเพาะสาธารณะในการสร้างแฟ้มข้อความเข้ากันได้กับ RTF คุณสามารถใช้เอกสารประกอบสำหรับข้อมูลจำเพาะเกี่ยวกับเว็บไซต์ต่อไปนี้ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) เป็นทรัพยากรที่ช่วยให้คุณสร้างแฟ้มของคุณเอง RTF อย่างไรก็ตาม ข้อมูลจำเพาะเกี่ยวกับการทำงานที่ให้ไว้ "เป็น-คือ", และไม่มีการสนับสนุนคือโดย Microsoft การสนับสนุนด้านเทคนิคสำหรับข้อมูลจำเพาะเกี่ยวกับการ คลิกที่การเชื่อมโยงต่อไปนี้สำหรับสเปค RTF:
ข้อมูล rich ข้อความรูปแบบจำเพาะ รุ่น 1.6

ข้อมูล rich ข้อความรูปแบบจำเพาะ รุ่น 1.7

แปลง XML ไป RTF

คุณสามารถใช้ XML ที่ถูกต้องจากแหล่งที่มาใด และแปลง RTF ขั้นตอนต่อไปนี้แสดงให้เห็นถึงวิธีการที่คุณสามารถแปลง XML ที่กำหนดเองเป็น RTF บันทึกเป็นแฟ้ม หรือคัดลอกไปยังคลิปบอร์ด
  1. สร้าง.NET Visual Basic ที่ใหม่แอพลิเคชันของ windows. form1 ถูกสร้างสำหรับคุณ
  2. เพิ่มตัวควบคุมปุ่มสอง Form1
  3. ในการมุมมองเมนู คลิกรหัส.
  4. แทรกต่อไปนี้ที่ด้านบนของหน้าต่างรหัสก่อนที่จะนำไปใช้ระดับชั้น Form1:
    Imports System.Xml
    Imports System.Xml.Xsl
    Imports System.IO
  5. เพิ่มรหัสต่อไปนี้เพื่อใช้งานคลา Form1 (ก่อนคลาสของการสิ้นสุด):
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "To File"
            Button2.Text = "To Clipboard"
    
        End Sub
    
        Private Sub ButtonsClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
            Handles Button1.Click, Button2.Click
    
            Dim sPath As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString
    
            ' Open the XML file.
            Dim xmlDoc As New XmlDocument()
            xmlDoc.Load(sPath & "\Dictionary.xml")
    
            ' Open the XSL file.
            Dim xslDoc As New XslTransform()
            xslDoc.Load(sPath & "\Dictionary.xslt")
    
            Select Case sender.name
                Case "Button1"
                    ' Transform the XSL and save it to file.
                    Dim TWrtr As New XmlTextWriter(sPath & "\Dictionary.RTF", System.Text.Encoding.Default)
                    xslDoc.Transform(xmlDoc, Nothing, TWrtr, Nothing) 
                    TWrtr.Close()
                    MsgBox("Transformed RTF saved to " & sPath & "\Dictionary.RTF")
                Case "Button2"
                    ' Transform the XSL and copy it to the clipboard.
                    Dim SWrtr As New StringWriter()
                    xslDoc.Transform(xmlDoc, Nothing, SWrtr, Nothing)
                    Dim datObj As New DataObject(DataFormats.Rtf, SWrtr)
                    Clipboard.SetDataObject(datObj)
                    SWrtr.Close()
                    MsgBox("Transformed RTF copied to the clipboard.")
            End Select
    
        End Sub
  6. เพิ่มแฟ้ม XML ในโครงการของคุณ:
    1. ในการProjectเมนู คลิกเพิ่มรายการใหม่.
    2. จากรายการของต้นแบบ คลิกแฟ้ม xml.
    3. พิมพ์ชื่อDictionary.xmlแล้ว คลิกOPEN.
    4. ผนวกต่อไปนี้เพื่อที่เนื้อหาของ Dictionary.xml:
      <Dictionary>
        <Entries>
          <Entry>
            <Word Type="1">Energetic</Word>
            <Definition>Having, exerting, or displaying energy</Definition>
          </Entry>
          <Entry>
            <Word Type="1">Happy</Word>
            <Definition>Enjoying, displaying, or characterized by pleasure or joy</Definition>
          </Entry>
          <Entry>
            <Word Type="2">Emotion</Word>
            <Definition>A complex, strong subjective response</Definition>
          </Entry>
        </Entries>
      </Dictionary> 
  7. เพิ่มไฟล์ XSLT โครงการของคุณ:
    1. ในการProjectเมนู คลิกเพิ่มรายการใหม่.
    2. จากรายการของต้นแบบ คลิกแฟ้ม xslt.
    3. พิมพ์ชื่อDictionary.xsltแล้ว คลิกOPEN.
    4. แทนเนื้อหาของ Dictionary.xslt ด้วยข้อความต่อไปนี้:
       
      <?xml version="1.0" encoding="UTF-8" ?>
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      
      	<xsl:output method="text"/>
      	<xsl:template match="/">
      
      	<xsl:text>{\rtf1</xsl:text>
      
      	<xsl:for-each select="Dictionary/Entries/Entry">
      
      		<xsl:text>\par\b </xsl:text>
      		<xsl:value-of select="Word"/>
      		<xsl:text>\b0\i  </xsl:text> 
      		<xsl:if test="Word[@Type='1']">adj.</xsl:if>
      		<xsl:if test="Word[@Type='2']">n.</xsl:if>
      		<xsl:text>\i0\par </xsl:text>
      		<xsl:value-of select="Definition"/>
      		<xsl:text>\par</xsl:text>
      	</xsl:for-each>
      
      	<xsl:text>}</xsl:text>
      
      	</xsl:template>
      	
      </xsl:stylesheet>  
  8. กด F5 เพื่อสร้างและเรียกใช้โปรแกรม
  9. คลิกไปยังแฟ้มเมื่อต้องการบันทึก transformed XML ไปยังแฟ้ม (Dictionary.rtf) คุณสามารถเปิดไฟล์ RTF ใน Word เพื่อตรวจสอบผลลัพธ์ของการแปลง
  10. คลิกไปยังคลิปบอร์ดเมื่อต้องการคัดลอก transformed XML ไปยังคลิปบอร์ดของ Windows คุณสามารถวางเนื้อหาของคลิปบอร์ดแล้วลงในเอกสาร Word ใหม่ หรือที่มีอยู่เพื่อดูผลลัพธ์

แปลงเป็นชุดข้อมูลเข้า RTF

visual Basic .NET ช่วยให้คุณทำการแปลงใน datasets ได้อย่างง่ายดาย ขั้นตอนนี้แสดงให้คุณเห็นวิธีการใช้ข้อมูลที่เกี่ยวข้องจากฐานข้อมูลตัวอย่าง Northwind และแปลง RTF แปลงที่แตกต่างกันสองจะแสดง: RTF เอกสารอย่างง่ายให้รายการลูกค้าติดต่อข้อมูลและเอกสาร RTF ซับซ้อนมาก somewhat ที่แสดงในใบสั่งรายละเอียดสำหรับลูกค้าในรูปแบบที่ชนิดของจดหมายเวียน
  1. เริ่มการทำงานของ Visual Basic ใหม่แอพลิเคชันเว็บ asp.netและบันทึกลงไปhttp://localhost/RTFDemo.

    WebForm1ถูกสร้างขึ้นสำหรับคุณ
  2. เพิ่มสองปุ่มควบคุมการ WebForm1
  3. ในการมุมมองเมนู คลิกรหัส.
  4. เพิ่มรหัสต่อไปนี้ไปPage_Loadฟังก์ชัน:
            Button1.Text = "View Contact Information"
            Button2.Text = "View Customer Orders"
  5. เพิ่มฟังก์ชันต่อไปนี้ไปWebForm1คลาสที่

    หมายเหตุ:: รหัสต่อไปนี้การสันนิษฐานคุณได้ติดตั้งอยู่บน localhost ใน SQL Server ถ้าคุณต้องใช้คอมพิวเตอร์เครื่องอื่น เปลี่ยนสมาชิกของแหล่งข้อมูลของสายอักขระการเชื่อมต่ออย่างเหมาะสม
        Private Sub ButtonsClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
                Handles Button1.Click, Button2.Click
    
            ' Connect to the data source.
            Dim nwindConn As SqlConnection = New SqlConnection( _
                "Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI")
            nwindConn.Open()
    
            ' Build a dataset based on whether you requested to view a list of 
            ' orders or a list of contacts.
            Dim ds As DataSet
            Dim sXSL As String
            Select Case (sender.id)
    
                Case "Button1"
    
                    ds = New DataSet("Contacts")
                    Dim ContactsDA As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers", nwindConn)
                    ContactsDA.Fill(ds, "Customers")
                    ' XSLT to use for transforming this dataset.
                    sXSL = "Contacts.xslt"  
    
                Case "Button2"
    
                    ds = New DataSet("CustomerOrders")
    
                    Dim custDA As SqlDataAdapter = New SqlDataAdapter("SELECT CustomerID, CompanyName, " & _
                        "Address, City, Region, PostalCode, Country FROM Customers", nwindConn)
                    custDA.Fill(ds, "Customers")
    
                    Dim ordersDA As SqlDataAdapter = New SqlDataAdapter("SELECT OrderID, CustomerID, Freight " & _
                        "FROM Orders", nwindConn)
                    ordersDA.Fill(ds, "Orders")
    
                    Dim ordersdetailDA As SqlDataAdapter = New SqlDataAdapter( _
                        "SELECT [Order Details].OrderID, Products.ProductName, [Order Details].Quantity, " & _
                        "[Order Details].[UnitPrice]*[Quantity]*(1-[Discount]) AS ItemTotal " & _
                        "FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID " _
                        , nwindConn)
    
                    ordersdetailDA.Fill(ds, "OrderDetails")
    
                    nwindConn.Close()
    
                    ds.Relations.Add("CustOrders", _
                    ds.Tables("Customers").Columns("CustomerID"), _
                    ds.Tables("Orders").Columns("CustomerID")).Nested = True
    
                    ds.Relations.Add("OrdersToOrdersDetail", _
                    ds.Tables("Orders").Columns("OrderID"), _
                    ds.Tables("OrderDetails").Columns("OrderID")).Nested = True
    
                    ' XSLT to use for transforming this dataset.
                    sXSL = "CustOrders.xslt" 
    
            End Select
    
            ' Close the connection to the data source.
            nwindConn.Close()
    
            ' Transform the dataset by using the appropriate stylesheet.
            Dim xmlDoc As XmlDataDocument = New XmlDataDocument(ds)
            Dim xslTran As XslTransform = New XslTransform()
            xslTran.Load(Server.MapPath(sXSL))
    
            ' Stream the results of the transformation to Word.
            Response.ContentType = "application/msword"
            Response.Charset = ""
            Response.ContentEncoding = System.Text.Encoding.Default
            xslTran.Transform(xmlDoc, Nothing, Response.Output)
    
        End Sub
  6. เพิ่มบรรทัดต่อไปนี้ของรหัสที่ด้านบนของ WebForm1.aspx.vb ก่อนที่จะนำไปใช้คลาส WebForm1:
    Imports System.Data.SqlClient
    Imports System.Xml
    Imports System.Xml.Xsl
  7. ในการProjectเมนู คลิกเพิ่มรายการใหม่. จากรายการของต้นแบบ คลิกแฟ้ม xsltชื่อแฟ้มContacts.xsltแล้ว คลิกOPEN.
  8. แทนเนื้อหาของ Contacts.xslt ด้วยข้อความต่อไปนี้:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" >   
    
    <xsl:output method="text"/>
    
    <xsl:template match="/">
    
    	<xsl:text>{\rtf1</xsl:text>
    	
        <xsl:text>{\fonttbl{\f0\froman\fcharset0\fprq2 Times New Roman;}{\f1\fswiss\fcharset0\fprq2 Arial;}}</xsl:text>
        
    	<xsl:text>{\header\pard\fs50 My Customer Contacts}</xsl:text>
    	
    	<xsl:text>{\footer\pard\fs18 Page {\field{\*\fldinst PAGE}</xsl:text>
    	<xsl:text>{\fldrslt }} of {\field{\*\fldinst NUMPAGES}{\fldrslt 1}} \par}</xsl:text>
    	
    	<xsl:text>\f1\fs20</xsl:text>
    	
        <xsl:for-each select="Contacts/Customers">
    		<xsl:text>\par\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\b0</xsl:text>
    		<xsl:text>\par </xsl:text><xsl:value-of select="CompanyName"/>
    		<xsl:text>\par </xsl:text><xsl:value-of select="ContactName"/>
    		<xsl:text>\par </xsl:text><xsl:value-of select="Phone"/>
    		<xsl:text>\par</xsl:text>
        </xsl:for-each>
    	      
    	<xsl:text>}</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Customers">
    
        <xsl:text>\par\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\b0</xsl:text>
        <xsl:text>\par </xsl:text><xsl:value-of select="CompanyName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="ContactName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Phone"/>
        <xsl:text>\par</xsl:text>
    
    </xsl:template>
    
    </xsl:stylesheet> 
  9. ในการProjectเมนู คลิกเพิ่มรายการใหม่. จากรายการของต้นแบบ คลิกแฟ้ม xsltชื่อแฟ้มCustOrders.xsltแล้ว คลิกOPEN.
  10. แทนเนื้อหาของ CustOrders.xslt ด้วยข้อความต่อไปนี้:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    	xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts" >   
    
    <xsl:output method="text"/>
    
    <msxsl:script language="VB" implements-prefix="user">
        Dim CustomerTotal as Double = 0
        Dim OrderSubtotal as Double = 0
        
        Function AddToOrderSubtotal(amt)
            amt.MoveNext
            OrderSubtotal = OrderSubtotal + System.Convert.ToDouble(amt.Current.Value)
        End Function
        
        Function GetOrderSubtotal
    		GetOrderSubtotal = OrderSubtotal
        End Function
        
        Function GetCustomerTotal
    		GetCustomerTotal = CustomerTotal
    		CustomerTotal = 0
    	End Function
    	
        Function GetOrderTotal(freight)
           freight.MoveNext
           nFreight = System.Convert.ToDouble(freight.Current.Value)
           GetOrderTotal = nFreight + OrderSubtotal
           CustomerTotal = nFreight + OrderSubtotal + CustomerTotal
           OrderSubtotal = 0  
        End Function
            
    </msxsl:script>
    
    <xsl:template match="CustomerOrders">
    
    	<xsl:text>{\rtf1</xsl:text>
    	
    	<xsl:text>{\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;\red221\green221\blue221;}</xsl:text>
    	
    	<xsl:text>{\info{\title Sample RTF Document}{\author Microsoft Developer Support}}</xsl:text>
    	
    	<xsl:text>{\header\pard\qc{\fs50 ASP-Generated RTF\par}{\fs18\chdate\par}\par\par}</xsl:text>
    	
    	<xsl:text>{\footer\pard\qc\brdrt\brdrs\brdrw10\brsp100\fs18 Page {\field{\*\fldinst PAGE}</xsl:text>
    	<xsl:text>{\fldrslt }} of {\field{\*\fldinst NUMPAGES}{\fldrslt 1}} \par}</xsl:text>
    	
    	<xsl:apply-templates select="Customers"/>
    	      
    	<xsl:text>}</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Customers">
    
        <xsl:text>\par\pard\fs20\cf2\qr\b </xsl:text><xsl:value-of select="CustomerID"/><xsl:text>\cf0\b0</xsl:text>
        <xsl:text>\par\pard </xsl:text><xsl:value-of select="CompanyName"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Address"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="City"/>
        <xsl:text>, </xsl:text><xsl:value-of select="Region"/>
        <xsl:text> </xsl:text><xsl:value-of select="PostalCode"/>
        <xsl:text>\par </xsl:text><xsl:value-of select="Country"/>
        <xsl:text>\par\par</xsl:text>
    
    	<xsl:apply-templates select="Orders"/>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl\ql\b\cbpat1 </xsl:text>
    	<xsl:text>Order Total for the Current Period:\cell </xsl:text>
    	<xsl:text>\qr</xsl:text>
    	<xsl:variable name="CustTtl" select="user:GetCustomerTotal()"/>
    	<xsl:value-of select="format-number($CustTtl,'$###0.00')"/>
    	<xsl:text>\cell</xsl:text>
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\pard\par\pard</xsl:text>
    	<xsl:text>\pard\plain\fs18\cf6\qc</xsl:text>
    	<xsl:choose>
    		<xsl:when test="$CustTtl = 0">
             <xsl:text>\b We've missed hearing from you!\b0 </xsl:text>
             <xsl:text> At your convenience, please call your personal sales representative </xsl:text>
             <xsl:text>so that we may discuss our specials for new and returning customers!</xsl:text>
          </xsl:when>
          <xsl:when test="$CustTtl > 2000">
             <xsl:text>\b Congratulations!\b0  Your purchases for this period qualify you for a \b 20%\b0 </xsl:text>
             <xsl:text> discount on one of your next orders. To take advantage of this offer, provide </xsl:text>
             <xsl:text>the coupon code ABC123XYZ when placing your order.</xsl:text>
          </xsl:when>
          <xsl:otherwise>
             <xsl:text> We value your patronage with Northwind Traders and would love to hear from you. </xsl:text>
             <xsl:text>If you have any questions about our upcoming line of products or if you want </xsl:text>
             <xsl:text>a catalog for the coming season, call 1-888-000-000.</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
    	<xsl:text>\par\pard</xsl:text>
    	<xsl:text>\par \page</xsl:text>
    
    </xsl:template>
    
    <xsl:template match="Orders">
    
    	<xsl:text>\trowd\cellx9000\pard\intbl\cbpat9</xsl:text>
    	<xsl:text>\ql\b </xsl:text><xsl:value-of select="OrderID"/><xsl:text>\b0\cell </xsl:text>
    	<xsl:text>\pard\intbl\row</xsl:text>
    	
    	<xsl:apply-templates select="OrderDetails"/>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Subtotal:\cell </xsl:text>
    	<xsl:value-of select="format-number(user:GetOrderSubtotal(),'$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Freight:\cell </xsl:text>
    	<xsl:value-of select="format-number(Freight,'$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    
    	<xsl:text>\trowd\cellx7000\cellx9000\pard\intbl</xsl:text>
    	<xsl:text>\qr Total:\cell </xsl:text>
    	<xsl:value-of select="format-number(user:GetOrderTotal(Freight), '$###0.00')"/><xsl:text>\cell</xsl:text>	
    	<xsl:text>\pard\intbl\row</xsl:text>
    		
    	<xsl:text>\trowd\cellx9000\pard\intbl \cell\pard\intbl\row</xsl:text>
    	
    </xsl:template>
    
    <xsl:template match="OrderDetails">
    
    	<xsl:text>\trowd\cellx5000\cellx7000\cellx9000\pard\intbl\ql </xsl:text>
    	<xsl:value-of select="ProductName"/><xsl:text>\cell </xsl:text>
    	<xsl:text>\qc </xsl:text><xsl:value-of select="Quantity"/><xsl:text>\cell </xsl:text>
    	<xsl:text>\qr </xsl:text>
    	<xsl:value-of select="format-number(ItemTotal,'$###0.00')"/><xsl:text>\cell</xsl:text>
    	<xsl:variable name="RunTotal" select="user:AddToOrderSubtotal(ItemTotal)"/>
    	<xsl:text>\pard\intbl\row</xsl:text>
    
    </xsl:template>
    
    </xsl:stylesheet>
  11. ในการการสร้างเมนู คลิกสร้างโซลูชัน.
  12. เริ่มการทำงานของ Internet Explorer และเรียกดู http://localhost/RTFDemo/Webform1.aspx
  13. คลิกดูข้อมูลที่ติดต่อเมื่อต้องการดูการแปลง XML แรกเพื่อ RTF ใน Word
  14. คลิกสำรองข้อมูลใน Internet Explorer
  15. คลิกใบสั่งของลูกค้ามุมมองเมื่อต้องการดูการแปลง XML ที่สองเพื่อ RTF ใน Word

rtf เคล็ดลับการแก้ไขปัญหาเบื้องต้น

  • ในขณะที่เขียน โค้ดตัวอย่างในนั้นแปลงเป็นชุดข้อมูลเข้า RTFส่วน กระแสข้อมูล RTF โดยตรงกับเบราว์เซอร์ อีกวิธีหนึ่งคือ คุณสามารถบันทึก RTF ที่ไปยังแฟ้ม และการเปลี่ยนเส้นทางไปยังแฟ้มที่บันทึกไว้ เมื่อต้องการทำเช่นนี้ แทนบรรทัดของรหัสในตัวอย่างเหล่านี้
    Response.ContentType = "application/msword"
    Response.ContentEncoding = System.Text.Encoding.Default
    Response.Charset = ""
    xslTran.Transform(xmlDoc, Nothing, Response.Output)
    with::
    Dim writer As XmlTextWriter = New XmlTextWriter( _
            Server.MapPath("Results.doc"), System.Text.Encoding.Default)
    xslTran.Transform(xmlDoc, Nothing, writer)
    writer.Close()
    Response.Redirect("Results.doc")
    การจัดเก็บ RTF ไปยังแฟ้มในลักษณะนี้ให้คุณตรวจสอบโครงสร้างของ RTF ในแฟ้ม โดยใช้ข้อความได้อย่างง่ายดายแก้ไข เช่น Notepad Storing the RTF to a file can be a helpful troubleshooting technique if the XSL transformation does not produce the results you expect.
  • When transforming to RTF, be aware of how you present whitespace and carriage returns in your stylesheet because that can affect how Word interprets your RTF. Both code samples in this article use the<xsl:text></xsl:text>element because it forces any white space information in it to be retained.
  • การใช้<xsl:output method="text"></xsl:output>in your stylesheet to make sure that your XML is transformed to text (rather than XML, which is the default output method). If you do not specify text as the output method, XML processing instructions may be added to the file. This can prevent Word from correctly interpeting the text as RTF.

ข้อมูลอ้างอิง

For additional information about server-side Automation of Microsoft Word and other Office applications, click the article number below to view the article in the Microsoft Knowledge Base:
257757INFO: Considerations for Server-Side Automation of Office
For additional information about using RTF in your solutions, click the article numbers below to view the articles in the Microsoft Knowledge Base:
270906HOWTO: Use ASP to Generate a Rich Text Format (RTF) Document to Stream to Microsoft Word
258513HOWTO: Paste RichText Formatted String into Word with Visual Basic Automation
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ transforming XML โดยใช้ Visual Basic .NET คลิกหมายเลขบทความด้านล่างนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
300934HOW TO: ใช้การแปลง XSL XML สำหรับ Streaming โดยใช้ Visual Basic .NET
300929HOW TO: ใช้การแปลง XSL จากเป็นเอกสาร XML ไปยังเอกสาร XML โดยใช้ Visual Basic .NET

คุณสมบัติ

หมายเลขบทความ (Article ID): 311461 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 2.0
ใช้กับ
  • Microsoft Office Word 2007
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.1
Keywords: 
kbhowto kbmt KB311461 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:311461

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com