我正在将基于 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?