0

我正在将基于 Swing 的旧 Java 6 应用程序升级到新的基于 HTML5 浏览器的应用程序。

旧系统的特点之一是它将文档作为 DefaultStyledDocuments 直接作为 varbinary 数据保存到 MSSQL 数据库中。

使用下面的 PHP,我可以读取数据并输出文件,但它有大量的头信息:

<?php

    include_once "../../config/connect.php";
    include_once "../utils.php";

    $docId = (isset($_GET["docId"]) && $_GET["docId"] != 0) ? $_GET["docId"] : 0;

    if ($docId != 0) {
        
        $sql = "SELECT DATALENGTH(doc) size, CONVERT(VARCHAR(MAX), doc, 2) doc FROM docs WHERE docId = $docId";

        $result = executeQuery($sql, $link, $param);

        $response = "";
        $size = "";
        while($row = sqlsrv_fetch_object($result)) {
            $response = $row->doc;
            $size = $row->size;
        }
    
        header("Content-type: application/doc");
        header("Content-Disposition: attachment");
        header("Content-Length: $size");
        echo hex2bin($response);
    }

?>

文件输出:

’  sr &javax.swing.text.DefaultStyledDocument
F€°ðÁ   L  buffert 6Ljavax/swing/text/DefaultStyledDocument$ElementBuffer;xr !javax.swing.text.AbstractDocument^öö‚ç Žß   L contextt 4Ljavax/swing/text/AbstractDocument$AttributeContext;L  datat +Ljavax/swing/text/AbstractDocument$Content;L  
documentFiltert !Ljavax/swing/text/DocumentFilter;L  documentPropertiest  Ljava/util/Dictionary;L  
listenerListt %Ljavax/swing/event/EventListenerList;xpsr  javax.swing.text.StyleContextoù~{½xñ   I 
unusedSetsL  stylest  Ljavax/swing/text/Style;xp    sr (javax.swing.text.StyleContext$NamedStyleç 
listenerListq ~ L  this$0t -Ljavax/swing/text/StyleContext;xpsr #javax.swing.event.EventListenerList±6Æ}

... ETC。...

„¬   xp     T H I S   I S   A   T E S T   D O C U M E N T 
 
 H e l l o   w o r l d ,   h o w   a r e   y o u   t o d a y ? 
 
 o O o 
psq ~ 1?@      w         t  i18nq ~ )

... ETC。

出于兼容性原因,我想DefaultStyleDocument直接将拉取到 HTML WYSIWYG 编辑器中。然后,我会将 HTML 化的文档保存回后端的单独列中。

这可以用Java来完成吗?php或者js我是否需要从Java运行一个单独的循环来将所有文档转换为HTML?

4

0 回答 0