4

私はデータ移行タスクに取り組んでおり、やや大規模な Lotus Notes アプリケーションをブログ プラットフォームにエクスポートする必要があります。私の最初のタスクは、記事を Lotus Notes から CSV ファイルにエクスポートすることでした。

LotusScript でエージェントを作成して、データを CSV ファイルにエクスポートしました。このIBM DeveloperWorks フォーラムの投稿 の修正版を使用しています。そして、それは基本的に仕事をします。ただし、Rich Text フィールドの内容は書式設定されていません。これは私が望んでいるものではありません。Rich Text フィールドを HTML として表示したいのです。

GetItemValueメソッドのドキュメントには、テキストがプレーン テキストにレンダリングされることが明示的に記載されています。そこで、HTML を取得できるものを探し始めました。IBM の記事How To Access HTML in a Rich Text Field Using LotusScript で、NotesMIMEEntity クラスといくつかのサンプル コードを見つけました。

ただし、上記の記事で説明した手法を機能させるには、Rich Text フィールドに「コンテンツを HTML および MIME として保存する」というプロパティが必要です。これは、私の Lotus Notes データベースには当てはまりません。問題のフィールドにプロパティを設定しようとしましたが、うまくいきませんでした。

NotesMIMEEntity を使用し、コンテンツが追加された後に [コンテンツを HTML および MIME として保存] プロパティを設定して、HTML としてレンダリングされたフィールドをエクスポートすることはできますか?

または、Notes データベースのリッチ テキスト フィールドを HTML としてエクスポートするためのオプションは何ですか?

おまけ情報: IBM Lotus Domino Designer バージョン 8.5 を使用しています

4

10 に答える 10

10

あなたが望むことを正確に行うこのかなり未知のコマンドがあります: コマンド OpenField を使用して URL を取得します。

Body-field のみを変換する例:

http://SERVER/your%5Fdatabase%5Fpath.nsf/NEW%5FVIEW/docid/Body?OpenField
于 2012-08-11T09:58:28.183 に答える
6

これが OpenField コマンドを使用した方法です。上記の D.Bugger の投稿を参照してください。

Function GetHtmlFromField(doc As NotesDocument, fieldname As String) As String
    Dim obj
    Set obj = CreateObject("Microsoft.XMLHTTP")
    obj.open "GET", "http://www.mydomain.dk/database.nsf/0/" + doc.Universalid + "/" + fieldname + "?openfield&charset=utf-8", False, "", ""
    obj.send("")

    Dim html As String
    html = Trim$(obj.responseText)

    GetHtmlFromField = html
End Function
于 2014-01-10T14:44:48.550 に答える
5

Midas の Rich Text LSX ( http://www.geniisoft.com/showcase.nsf/MidasLSX )を見ることをお勧めします。

私は個人的に を使用したことはありませんが、何年も前から、Rich Text を操作するための最良のオプションであったことを覚えています。私はそれがあなたの頭痛の多くを救うに違いない.

NotesMIMEEntity クラスに関しては、RichText を MIME に変換する方法はないと思います。MIME を RichText に変換する (または電子メールの目的で文書内に MIME を保持する) 方法しかないと思います。

于 2009-12-10T17:06:58.170 に答える
5

Notes Domino 8.5.1 にアップグレードすると、クラスの新しいConvertToMIMEメソッドを使用できます。ドキュメントNotesDocumentを参照してください。これはあなたが望むことをするはずです。

あるいは、Domino サーバーに RichText をレンダリングさせる最も簡単な方法は、URL 呼び出しを介して実際に取得することです。RichText フィールドだけを持つ単純なフォームをセットアップし、お気に入りの HTTP API を使用してページを取り込みます。その後、本体を引き出すのはかなり簡単です。

于 2009-12-11T14:13:45.523 に答える
3

単純にする。

BODYフィールドを変更してコンテンツをHTMLおよびMIMEとして保存する

編集モードでドキュメントを開きます。保存する。選ぶ。

これで、NotesMIMEEntityを使用して、スクリプトから必要なものを取得できます。

于 2012-11-14T21:57:10.810 に答える
2

LotusScriptの使用についておっしゃっていたと思いますが、(Notesクライアントで)小さなJavaエージェントを作成してもかまわない場合は、これをかなり簡単に行うことができます。既存のフォームデザインを変更する必要はありません。

基本的な考え方は、ローカルホストhttpリクエスト(Javaでは単純)を介してJavaコードで特定のドキュメントを開き、コードでそのhtml出力をキャプチャして、そのドキュメントに保存することです。基本的に、Dominoレンダリングエンジンに手間のかかる作業を許可します。

あなたはこれをしたいと思うでしょう:

  1. 変換するリッチテキストフィールドのみを含み、コンテンツタイプがHTMLのフォームを作成します
  2. 変換するすべてのドキュメントの選択式と、新しいフォームに計算されるフォーム式を使用してビューを作成します
  3. ビューをウォークするだけのJavaエージェントを作成し、ドキュメントごとにそのdo​​cidを取得し、http://SERVER/your_database_path.nsf/NEW_VIEW/docid?openDocumentの形式でURLを開き、http応答を取得して保存します。

私はここの同様のSO投稿にいくつかのサンプルコードを載せました:

LotusScriptを使用してドキュメント内のテキストおよびリッチテキストフィールドをHTMLに変換するにはどうすればよいですか?

于 2009-12-12T23:45:14.137 に答える
2

NotesDXLExporter クラスを使用してリッチ テキストをエクスポートし、XSLT を使用して出力を必要なものに変換できます。

于 2009-12-10T16:13:32.463 に答える
1

Domino 10 で動作します (9 ではテストしていません)。

HTMLStrings$ = NotesRichTextItem .Converttohtml([options] ) As String

ドキュメントを参照してください:

https://help.hcltechsw.com/dom_designer/10.0.1/basic/H_CONVERTOHTML_METHOD_NOTESRICHTEXTITEM.html

更新 (2022)

バージョン 11 以降、HCL はこのメソッドをサポートしなくなりました。ドキュメントには、このメソッドに関する情報は含まれていません。いくつかのテストを行ったところ、v12 でも動作しますが、HCL は使用しないことを推奨しています。

于 2020-03-04T14:20:07.337 に答える