Τρόπος χρήσης του ASP.NET ή Visual Basic.NET για το μετασχηματισμό XML σε μορφή εμπλουτισμένου κειμένου του Microsoft Word 2002

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 311461 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Χρησιμοποιήστε αυτόν τον οδηγό βήμα προς βήμα για τη δημιουργία της μορφής εμπλουτισμένου κειμένου (RTF) από γλώσσα XML (Extensible Markup) με τη χρήση της Visual Basic .NET.

Μορφή εμπλουτισμένου κειμένου είναι μια μορφή που βασίζεται σε κείμενο, η οποία κωδικοποιεί μορφοποιημένο κείμενο, διάταξη του εγγράφου και τα γραφικά. Χρησιμοποιείται συνήθως με το Microsoft Word. Επειδή RTF που βασίζεται σε κείμενο, αυτό μπορεί να εύκολα δημιουργηθεί με κωδικό. Εάν έχετε δεδομένα XML που θέλετε να εμφανίζεται στο Word ως έγγραφο τύπο συγχώνευσης αλληλογραφίας ή καταλόγων/λίστα, κατόπιν μετατροπή των δεδομένων XML σε μια ροή RTF ενδέχεται να είναι μια ιδανική λύση για εσάς. Και, στην πραγματικότητα, εάν που αναπτύσσετε μια λύση όπου μπορείτε να δημιουργήσετε έγγραφα σε ένα διακομιστή Web, στη συνέχεια, δημιουργεί αυτά τα έγγραφα χρησιμοποιώντας μια μορφή που βασίζεται σε κείμενο, όπως HTML ή RTF, προτιμάται πάνω από τη χρήση του διακομιστή αυτοματοποίησης του Word.

Αυτό το άρθρο παρέχει δείγμα κώδικα με οδηγίες βήμα προς βήμα, για το μετασχηματισμό XML σε μορφή RTF για εμφάνιση στο Word, χρησιμοποιώντας διάφορες προσεγγίσεις:
  • Αποθηκεύστε τη μορφή RTF σε ένα αρχείο και ανοίξτε το στο Word.
  • Μεταφέρετε RTF του Word, χρησιμοποιώντας το Windows Πρόχειρο.
  • Ροή του RTF στο Word που φιλοξενείται στον Microsoft Internet Explorer, από μια εφαρμογή Web του ASP.NET.

Την προδιαγραφή της μορφής εμπλουτισμένου κειμένου

Οι προδιαγραφές μορφή εμπλουτισμένου κειμένου (RTF) είναι μια δημόσια προδιαγραφή για τη δημιουργία αρχείων κειμένου RTF που είναι συμβατές. Μπορείτε να χρησιμοποιήσετε την τεκμηρίωση για την προδιαγραφή από την ακόλουθη τοποθεσία της Microsoft Developer Network (MSDN) στο Web ως πόρος για να σας βοηθήσει να δημιουργήσετε τα δικά σας αρχεία RTF. Ωστόσο, παρέχεται η προδιαγραφή "ως-είναι", και η υποστήριξη παρέχεται από την υπηρεσία τεχνικής υποστήριξης της Microsoft για τον καθορισμό. Κάντε κλικ στις παρακάτω συνδέσεις για τις προδιαγραφές RTF:
Καθορισμός μορφής κειμένου εμπλουτισμένο, έκδοση 1.6

Εμπλουτισμένο κείμενο μορφή προδιαγραφής, έκδοση 1.7

Μετασχηματισμού XML σε μορφή RTF

Μπορείτε να πάρετε έγκυρη XML από οποιαδήποτε προέλευση και μετατροπή σε μορφή RTF. Η ακόλουθη διαδικασία δείχνει πώς μπορείτε να μετατρέψετε την προσαρμοσμένη XML σε μορφή RTF, αποθηκεύονται σε ένα αρχείο ή να αντιγραφεί στο Πρόχειρο.
  1. Δημιουργήστε ένα νέο Visual Basic .NETΕφαρμογή των Windows. Φόρμα1 δημιουργείται για εσάς.
  2. Προσθέστε δύο στοιχεία ελέγχου κουμπί Φόρμα1.
  3. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  4. Μπορείτε να εισαγάγετε το εξής στο επάνω μέρος του παραθύρου κώδικα πριν από την υλοποίηση Φόρμα1 κλάσης:
    Imports System.Xml
    Imports System.Xml.Xsl
    Imports System.IO
  5. Προσθέστε τον ακόλουθο κώδικα στην υλοποίηση του Φόρμα1 κλάσης (πριν από τηνΤέλος κλάσης):
        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. Στο διακομιστήΤο έργομενού, κάντε κλικ στο κουμπίΠροσθήκη νέου στοιχείου.
    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. Στο διακομιστήΤο έργομενού, κάντε κλικ στο κουμπίΠροσθήκη νέου στοιχείου.
    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. Κάντε κλικΜε το αρχείοΓια να αποθηκεύσετε το μετασχηματισμένο XML σε ένα αρχείο (Dictionary.rtf). Μπορείτε να ανοίξετε το αρχείο RTF του Word για να εξετάσετε τα αποτελέσματα του μετασχηματισμού.
  10. Κάντε κλικΣτο ΠρόχειροΓια να αντιγράψετε το μετασχηματισμένο XML στο Πρόχειρο των Windows. Στη συνέχεια, μπορείτε να επικολλήσετε τα περιεχόμενα του Προχείρου σε ένα νέο ή υπάρχον έγγραφο του Word για να δείτε τα αποτελέσματα.

Μετατροπή ενός DataSet σε RTF

Visual Basic .NET που επιτρέπει σε εσάς για να το κάνετε εύκολα μετασχηματισμούς σε datasets. Αυτή η διαδικασία δείχνει πώς να διαρκέσει σχετικών δεδομένων από το δείγμα βάσης δεδομένων Northwind και μετατροπή σε μορφή RTF. Δύο διαφορετικών μετασχηματισμών είναι επιδεικνύεται: ένα απλό έγγραφο RTF που λίστες πελατών με πληροφορίες και μια κάπως πιο πολύπλοκο έγγραφο RTF που εμφανίζει να παραγγείλετε το πληροφορίες για πελάτες με τη μορφή τύπου συγχώνευσης αλληλογραφίας.
  1. Ξεκινήστε μια νέα της Visual BasicΕφαρμογή Web του ASP.NETκαι να το αποθηκεύσετε σεhttp://localhost/RTFDemo.

    WebForm1δημιουργείται για εσάς.
  2. Προσθέστε δύοΚουμπίτα στοιχεία ελέγχου WebForm1.
  3. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίΚωδικός.
  4. Προσθέστε τον ακόλουθο κώδικα για τοPage_LoadFunction:
            Button1.Text = "View Contact Information"
            Button2.Text = "View Customer Orders"
  5. Προσθέστε την ακόλουθη συνάρτηση με τοWebForm1CLASS.

    ΣΗΜΕΙΩΣΗ: Ο ακόλουθος κώδικας υποθέτει ότι έχετε SQL Server εγκατεστημένο από το localhost. Εάν πρέπει να χρησιμοποιήσετε έναν άλλο υπολογιστή, αλλάζουν αντίστοιχα του μέλους του αρχείου προέλευσης δεδομένων της συμβολοσειράς σύνδεσης.
        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. Στο διακομιστήΤο έργομενού, κάντε κλικ στο κουμπίΠροσθήκη νέου στοιχείου. Από τη λίστα των προτύπων, κάντε κλικ στο κουμπίΑρχείο 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. Στο διακομιστήΤο έργομενού, κάντε κλικ στο κουμπίΠροσθήκη νέου στοιχείου. Από τη λίστα των προτύπων, κάντε κλικ στο κουμπίΑρχείο 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. Κάντε κλικbackστον Internet Explorer.
  15. Κάντε κλικΠροβολή παραγγελιών πελατώνΓια να προβάλετε το δεύτερο μετασχηματισμού XML σε μορφή RTF του Word.

Αντιμετώπιση προβλημάτων συμβουλές RTF

  • Όπως έχει συνταχθεί, το δείγμα κώδικα τοΜετατροπή ενός DataSet σε 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). Αποθηκεύοντας τη μορφή RTF σε ένα αρχείο μπορεί να είναι μια χρήσιμη τεχνική αντιμετώπισης προβλημάτων όταν το XSL μετασχηματισμού δεν παράγει τα αποτελέσματα που αναμένετε.
  • Κατά τη μετατροπή σε μορφή RTF, να έχετε υπόψη σας πως υπάρχει κενό διάστημα και επιστρέφει χαρακτήρες σας φύλλου στυλ επειδή που μπορεί να επηρεάσει το πώς το Word ερμηνεύει το RTF. Και τα δύο δείγματα κώδικα σε αυτό το άρθρο χρήση του<xsl:text></xsl:text>στοιχείο επειδή σας αναγκάζει όλες τις πληροφορίες κενός χώρος σε αυτό πρέπει να διατηρείται.
  • Χρησιμοποιήστε<xsl:output method="text"></xsl:output>στο φύλλο στυλ σας, για να βεβαιωθείτε ότι το XML μετατραπεί σε κείμενο (αντί για XML, η οποία είναι η προεπιλεγμένη μέθοδος εξόδου). Εάν δεν καθορίσετε κείμενο ως μέθοδος εξόδου, οδηγίες επεξεργασίας XML μπορούν να προστεθούν στο αρχείο. Αυτό μπορεί να εμποδίσει το Word interpeting σωστά το κείμενο ως μορφή RTF.

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με το διακομιστή αυτοματισμού του Microsoft Word και άλλες εφαρμογές του Office, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
257757ΠΛΗΡΟΦΟΡΙΕΣ: Θέματα για αυτοματοποίηση ενεργειών του διακομιστή του Office
Για πρόσθετες πληροφορίες σχετικά με τη χρήση RTF σας λύσεις, κάντε κλικ στο κουμπί αριθμούς των άρθρων παρακάτω για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
270906ΔΙΑΔΙΚΑΣΙΕΣ: Χρήση ASP για να δημιουργήσει ένα έγγραφο μορφής (RTF) εμπλουτισμένου κειμένου για ροή για το Microsoft Word
258513ΔΙΑΔΙΚΑΣΙΕΣ: Επικόλληση εμπλουτισμένο κείμενο με τη μορφή ακολουθίας χαρακτήρων στο Word με την αυτοματοποίηση της Visual Basic
Για πρόσθετες πληροφορίες σχετικά με το μετασχηματισμό XML με χρήση της Visual Basic .NET, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
300934ΔΙΑΔΙΚΑΣΙΕΣ: Εφαρμογή μετασχηματισμού XSL σε XML για τη ροή δεδομένων με χρήση της Visual Basic .NET
300929ΔΙΑΔΙΚΑΣΙΕΣ: Εφαρμογή μετασχηματισμού XSL από ένα έγγραφο XML σε ένα έγγραφο XML με χρήση της Visual Basic .NET

Ιδιότητες

Αναγν. άρθρου: 311461 - Τελευταία αναθεώρηση: Τρίτη, 28 Σεπτεμβρίου 2010 - Αναθεώρηση: 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
Λέξεις-κλειδιά: 
kbhowto kbmt KB311461 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της 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