ΔΙΑΔΙΚΑΣΙΕΣ: χρήση ASP.NET ή Visual Basic .NET για το μετασχηματισμό XML σε μορφή εμπλουτισμένου κειμένου του Microsoft Word 2002

Σύνοψη

Χρησιμοποιήστε αυτόν τον οδηγό βήμα προς βήμα για τη δημιουργία μορφή εμπλουτισμένου κειμένου (RTF) από επεκτάσιμη γλώσσα σήμανσης (XML), χρησιμοποιώντας τη 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:

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

Μπορείτε να πάρετε έγκυρη XML από οποιαδήποτε προέλευση και να μετατρέψετε σε μορφή RTF. Η παρακάτω διαδικασία δείχνει πώς μπορείτε να μετατρέψετε προσαρμοσμένη XML σε μορφή RTF, αποθηκεύονται σε ένα αρχείο ή να αντιγραφεί στο Πρόχειρο.
  1. Δημιουργήστε μια νέα Visual Basic .NET Εφαρμογής για Windows. Form1 δημιουργείται για εσάς.
  2. Προσθέστε δύο στοιχεία ελέγχου κουμπί Form1.
  3. Στο μενού Προβολή , κάντε κλικ στο κουμπί Κωδικός.
  4. Εισαγάγετε το ακόλουθο κείμενο στο επάνω μέρος του παραθύρου κώδικα πριν από την εφαρμογή της κλάσης φόρμας Form1:
    Imports System.XmlImports 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. Στο μενού ' έργο ', κάντε κλικ στην επιλογή Προσθήκη νέου στοιχείου.
    2. Από τη λίστα των προτύπων, κάντε κλικ στο Αρχείο XML.
    3. Πληκτρολογήστε το όνομα Dictionary.xml και, στη συνέχεια, κάντε κλικ στο κουμπί Άνοιγμα.
    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 και, στη συνέχεια, κάντε κλικ στο κουμπί Άνοιγμα.
    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 που επιτρέπει σε εσάς για να το κάνετε εύκολα μετασχηματισμούς σε σύνολα δεδομένων. Αυτή η διαδικασία δείχνει πώς να παίρνουν τα σχετικά δεδομένα από το δείγμα βάσης δεδομένων Northwind και να μετατρέψετε σε μορφή RTF. Δύο διαφορετικών μετασχηματισμών είναι επιδεικνύεται: ένα απλό έγγραφο RTF που παραθέτει σε λίστα πληροφορίες επαφής πελατών και μια κάπως πιο σύνθετη έγγραφο RTF που εμφανίζει πληροφορίες παραγγελιών για τους πελάτες με τη μορφή τύπου συγχώνευσης αλληλογραφίας.
  1. Ξεκινήστε μια νέα Visual Basic Εφαρμογή Web του ASP.NET και αποθηκεύστε το σε http://localhost/RTFDemo.

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

    ΣΗΜΕΊΩΣΗ: Ο ακόλουθος κώδικας υποθέτει ότι έχετε 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.SqlClientImports System.Xml
    Imports System.Xml.Xsl
  7. Στο μενού ' έργο ', κάντε κλικ στην επιλογή Προσθήκη νέου στοιχείου. Από τη λίστα των προτύπων, κάντε κλικ στο Αρχείο XSLT, ονομάστε το αρχείο Contacts.xslt, και στη συνέχεια κάντε κλικ στο κουμπί Άνοιγμα.
  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, και στη συνέχεια κάντε κλικ στο κουμπί Άνοιγμα.
  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)
    με:
    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: Output = "κείμενο" > με το φύλλο στυλ για να βεβαιωθείτε ότι το XML μετατραπεί σε κείμενο (αντί για XML, η οποία είναι η προεπιλεγμένη μέθοδος εξόδου). Εάν δεν καθορίσετε κείμενο ως μέθοδος εξόδου, οδηγίες επεξεργασίας XML μπορεί να προστεθεί στο αρχείο. Αυτό μπορεί να εμποδίσει το Word interpeting σωστά το κείμενο με μορφή RTF.

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με το διακομιστή αυτοματισμού του Microsoft Word και άλλες εφαρμογές του Office, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
257757 ΠΛΗΡΟΦΟΡΙΕΣ: θέματα για το διακομιστή αυτοματισμού του Office
Για πρόσθετες πληροφορίες σχετικά με τη χρήση RTF σας λύσεις, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
270906 ΔΙΑΔΙΚΑΣΙΕΣ: χρήση ASP για τη δημιουργία ενός εγγράφου Format) (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 - Τελευταία αναθεώρηση: 21 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια