問題タブ [oracle-outside-in]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# P/Invoke 呼び出しの C++ dll の正しいパラメーターを取得する際の問題
Oracle の Outside In API の機能を相互運用しようとしています。次の機能があります。
ヘッダー ファイルから、パラメーターを次のように減らしました。
typedef VTSYSPARAM VTHDOC, VTLPHDOC *
typedef DWORD_PTR VTSYSPARAM
typedef unsigned long DWORD_PTR
ヘッダー ファイル、サンプル プログラム、および見つけたドキュメントを
調べます。
2. ドキュメント「開発者が 0 に設定する必要があります」に従って、dwFlags と dwReserved。
3. コールバックを処理したくない場合は、pCallbackFunc を NULL に設定できます。
4. 最後の 2 つは、[StructLayout(LayoutKind.Sequential)] を使用するために C# ラッパーを作成した構造体に基づいています。次に、インスタンスをインスタンス化し、最初に Marshal.AllocHGlobal(Marshal.SizeOf(instance)) で IntPtr を作成してパラメーターを生成し、次に dwCallbackData の uint および phExport の IntPtr として渡されるアドレス値を取得します。
最終的なパラメータ リストは次のとおりです。 1. 以前に呼び出された DAOpenDocument 関数によってアドレスと共にロードされた IntPtr としての phDoc。
2. FI_JPEGFIF を表す 1535 に設定された uint としての dwOutputId
3. IOTYPE_ANSIPATH を表す 2 に設定された int としての dwSpecType
4. 出力が書き込まれる IntPtr.Zero としての pSpec
5. 指示に従って uint として 0 に設定された dwFlags
6. dwReserved としてuint を指示どおりに 0 に設定
7. pCallbackFunc を IntPtr として NULL に設定 (結果を処理するため
) 8. dwCallBackDate を uint として構造体のバッファのアドレス
9. phExport を IntPtr として別の構造体バッファへ
API からまだ未定義のエラーが発生します。呼び出しが、どのヘッダー ファイルにも定義されていない 961 を返すことを意味します。過去に、パラメーターの型の選択が間違っていたときにこれを取得しました。
私は Interop Assistant を使い始めました。これは、変換されるパラメータ タイプの数を知るのに役立ちました。ただし、ヘッダー ファイルから正しいネイティブ型をどれだけうまく収集できるかによって制限されます。たとえば、前の関数で使用された hDoc パラメータは、ファイルシステム以外のハンドルとして定義されていたため、Marshal を使用してハンドルを作成しようとした後、IntPtr を使用し、最終的には int であることが判明しました (実際には、ここで使用された &phDoc でした)。 )。
では、試行錯誤以外に、これを行うためのより科学的な方法はありますか?
ジム
thread-safety - OutsideInのPDFエクスポートライブラリの関数EXOpenExportはスレッドセーフですか?
私はUbuntuLinuxで、Oracle Outside In PDF Export
ライブラリの周りにNode.js用のC++ラッパーを書いています。Node.jsにはシングルスレッドのイベントループがあるため、長時間実行される処理はワーカースレッドで実行されます。したがって、私のラッパーは、このワーカースレッド内のすべてのPDFエクスポートメソッドを呼び出しています。これについては、2つのことを確認できるように説明します。これはスレッド化された環境であり、すべてのPDFエクスポート関数が同じワーカースレッドで呼び出されています。また、リダイレクトされたIOまたはPDFエクスポートで処理されるスレッドを使用していません。スレッドを使用しないように指定してライブラリを初期化しました。したがって、この処理はすべて、関数を呼び出すスレッド内で行われる必要があります。
1つのPDFをエクスポートする場合、または2つまたは3つをすばやく連続してエクスポートする場合でも、すべてがうまくいくようです。エクスポートしようとするPDFの数を5以上に増やすと、OITライブラリ内からSIGSEGVセグメンテーション違反が発生します。バックトレースは以下のとおりです。
バックトレースについて少し説明します。#11の関数は、私のコード内の関数です。これが、すべてのOITlib関数を呼び出す関数です。行#12以降の関数は、Node.js関連のスレッド関数であり、コードの関数を実行するようにスレッドを設定します。行#10から#1までの関数は、すべてOITと呼ばれる関数です。
PDFエクスポートのドキュメントには、スレッド環境内でこのライブラリを使用する場合は、ワーカースレッド内で毎回init関数とdeinit関数を呼び出す必要があると記載されています。私は自分のコードでこれを行っています。これは次の場所で確認できます:https ://github.com/ryancole/topdf/blob/master/src/topdf.cc#L29-L74
これを引き起こすような設定が必要なものは他にありますか?フォントディレクトリを明示的に指定しているだけです。これらのライブラリは実際にスレッドセーフですか?彼らがそうであるようには見えません。
x11 - Xvfb を使用した Solaris での Oracle OutsideIn ImageExport のテスト
Xvfb を使用して、solaris で Oracle Outside のテストに成功した人はいますか? エラー メッセージはごくわずかなもので、どの構成に問題があるのかわかりません。
プロセス
- /usr/openwin/server/etc/OWconfig を編集します
class="XDISPLAY" name="99"
coreKeyboard="IKBD"
corePointer="ps22b"
listOfScreens="stvga"; et...
- Xvfb の開始: Xvfb :99 -ac
- ウィンドウ マネージャを起動します: metacity --display :99 --sm-disable --replace
- すべてのフォント ディレクトリへのフォント パスを設定する
- テストを実行
- get error: SCCERR_DISPLAYOPENFAILED 0x087 /* ディスプレイを開くことができませんでした (XOpenDisplay が失敗しました) */
viewer - Outside In Viewer テクノロジ: doc ファイルの「ページに移動」機能を実装する方法
Oracle Outside In Viewer Technology を使用してファイルを表示しています。ユーザーが提供する特定のページに移動する機能が必要になりました。つまり、ユーザーがページ番号 5 を提供した場合、ビューアーはページ番号に移動する必要があります。5.
ドキュメント ファイルをビューアーで表示しているときに、[ページに移動] 機能を実装することはできますか?
可能であれば、どうすればそれを達成できますか?
javascript - Oracle Outside In Web View Export JavaScript API ロードの問題
メソッドを使用して Oracle の OutSide In Web View Export を使用してサンプル PDF ファイルを HTML5 に変換しましたAjaxChunked
が、提供された JavaScript API を使用してファイルを正しくレンダリングできません。ファイルは正しくレンダリングされ、直接参照されます。
たとえば、JavaScript API による不適切なレンダリング:
直接参照した場合のファイルの外観:
正しいレンダリングのソース コードは次のとおりです。
Web View Export JavaScript API を使用して作成した index.html は次のとおりです。
ドキュメントを変換するコード (C#) は次のとおりです。
問題の原因についていくつかのアイデアを探しましたが、何も見つからないようです。オラクルが提供するドキュメントは良くないので、途方に暮れています。2 年以上前の Oracle サポート フォーラムには、まさにこの問題に関する投稿がありますが、解決策は提供されていません。
アイデアや提案は大歓迎です。