2

RightFax を使用して効率的に FAX を送信しようとしています。

ユーザーは PDF をファックスする必要があり、アプリケーションは正常に動作していますが、一括送信には非常に時間がかかります (受信者が 20 人を超えると、ファックスごとに約 40 秒かかります)。

// Fax created
fax.Attachments.Add(@"C:\\Test Attachments\\Products.pdf", BoolType.False);
fax.Send();

RightFax には*Library Documentsという概念があるため、PDF ドキュメントを Library Document としてサーバーに保存し、それを再利用することができると考えたので、この PDF を n ユーザーにアップロードする必要はありません。

ライブラリ ドキュメントは問題なく作成できますが (取得できるなど)、これに PDF を追加するにはどうすればよいですか? (私はサーバー上で権限を持っています。)

LibraryDocument doc2 = server.LibraryDocuments.Create;
doc2.Description = "Test Doc 1";
doc2.ID = "568"; // tried ints everything!
doc2.IsPublishedForWeb = BoolType.True;
doc2.PageCount = 2;
doc2.Save();

また、FAX を作成すると、API は実行時に例外をスローする「StoreAsNewLibraryDocument」のオプションを提供します。System.ArgumentException: 値が期待される範囲内にありません

fax.StoreAsNewLibraryDocument("PRODUCTS","the products");

私たちにとって重要なのは、RFCOMAPILib を介して API を使用して、可能な限り最も効率的な方法で 500 通のファックスを送信する方法です。添付の PDF を再利用できれば、パフォーマンスが大幅に向上すると思います。明らかに、何百人もの受信者がいる場合、40 秒で FAX を送信することは受け入れられません。

API を使用して最も効率的なモードで添付ファイル付きの FAX を送信するにはどうすればよいですか?

4

1 に答える 1

1

StoreAsNewLibraryDocument() は、RightFax COM API を使用して LibraryDocuments を保存する唯一の実用的な方法ですが、既存の LibraryDocument を使用していないと仮定すると、最初のファックスを送信した直後に関数を呼び出す必要があり、通常のファイル ( LibraryDocではありません) 添付ファイル。

(上記のように、サーバー上に LibraryDoc オブジェクトを自分で作成しないでください。サーバー上に LibraryDocument ではない既存のファイルがあり、それを 1 つにしたい場合にのみ作成します。おそらく、そのようなシナリオに遭遇することはないでしょう。)

新しい LibraryDocument は、StoreAsNewLibraryDocument() の最初の引数として指定した ID 文字列によって (後続の FAX 添付ファイルで) 参照されます。その ID が RightFax サーバーの LibraryDocuments コレクションに対して一意でない場合、エラーが発生します。(実際にサーバー上のファイルを置き換えたい場合は、代わりに StoreAsLibraryDocumentUpdate() を使用できます。) また、常に AttachmentType を指定することを忘れないでください。

理論的には、これはあなたが本当にしなければならないすべてのはずです:


' 最初のファックス:

fax.Attachments.Add(@"C:\\Test Attachments\\Products.pdf", BoolType.False);
fax.Attachments.Item(1).AttachmentType = AttachmentType.aFile;
fax.Send();
fax.StoreAsNewLibraryDocument("PRODUCTS", "The Products");
server.LibraryDocuments("PRODUCTS").IsPublishedForWeb = BoolType.True;

' その後のすべてのファックスについて:

fax.Attachments.Add(server.LibraryDocuments("PRODUCTS"));
fax.Attachments.Item(1).AttachmentType = AttachmentType.aLibraryDocument;
fax.Send();

私が「理論上」と言う理由は、これが常にうまくいくとは限らないからです。StoreAsNewLibraryDocument() を呼び出すと、LibraryDoc の PageCount がゼロになることがあります。これはランダムに発生するように見えますが、RightFax のバグか、サーバーの設定ミスが原因である可能性があります。そのため、チェックすることは非常に良い考えです...

server.LibraryDocuments("PRODUCTS").PageCount = 0

...後続のファックスを送信する前に、必要に応じて機能するまで再試行するか、(機能しない場合) LibraryDoc を別の方法で保存して、StoreAsNewLibraryDocument() をあきらめます。

一方、その問題がなければ、通常、ローカル ファイルを毎回添付 (およびアップロード) する場合に比べて、10 分の 1 程度の時間で一括 FAX を送信できます。

OpenText/RightFax の誰かがこれを読んで、StoreAsNewLibraryDocument() がゼロページのファックスになることがある理由を説明できる場合、それに関する追加の回答をいただければ幸いです。

于 2013-09-17T18:37:36.477 に答える