データベースにアップロードされたドキュメントのテキストフィールドとリッチテキストフィールドをhtmlフィールドに変換する方法を知りたかっただけです。
2 に答える
私はそれをどこかで見たことを知っていました:
トリックの核心は、コンテンツを MIMEParts として保存することです。
サンプル コードは 5 年前のもので、R6 用に設計されていますが、Notes にはかなり良好な後方互換性があります。また、MIME から RichText への逆方向の移行は簡単なので、問題ないという個人的な経験もあります。
通常のテキスト フィールドの場合は、コンテンツをリッチ テキスト フィールドにコピーするか、ドキュメント全体をレンダリングできる上記のリンクの機能を使用することができます。
lotusscriptでこれを実際に行うことは不可能だと思います。しかし、Java エージェントでは、Domino サーバーに対して HTTP 要求を行うことができます。これにより、基本的にサーバーはレンダリング作業を行うようになります。次に、結果の html をキャプチャして、これを同じドキュメントまたは別のドキュメントなどに保存できます。
レンダリングで特定のテキスト/リッチ テキスト フィールドのみが必要な場合は、必要な正確なレイアウトとフィールドを使用して変換用の特別なフォームを設定するだけです。次に、すべてのドキュメントを含むビューを作成し、フォーム式を追加して、この新しいフォームが確実に使用されるようにします。次に、作成した URL でそのビューを参照して、各ドキュメントをレンダリングできます。
Java エージェントのコードは次のようになります。
// get the URL that will open that document
// doc is current document to convert
String docid = doc.getUniversalID();
String notesURL = "/" + DB_PATH + "/" + YOUR_VIEW + "/" + docid + "?OpenDocument";
URL docURL =new URL(notesURL);
streamIn = docURL.openStream();
str = new InputStreamReader(streamIn);
binIn = new BufferedReader (str);
String lineNext;
StringBuffer sb = new StringBuffer();
while ( (lineNext = binIn.readLine( )) != null ) {
sb.append(line);
}
String sHTML = sb.toString();
// then store sHTML somewhere