2

我正在尝试以有效的方式通过 RightFax 发送传真。

我的用户需要传真 PDF,即使应用程序运行良好,批量发送也很慢(> 20 个收件人,每个传真大约需要 40 秒)。

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

RightFax 有这个*Library Documents的概念,所以我想我们可以做的就是将一个 PDF 文档作为 Library Document 存储在服务器上,然后重复使用,这样就不需要为 n 个用户上传这个 PDF。

我可以毫无问题地创建库文档(我可以检索它们等),但是如何向其中添加 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();

此外,一旦我创建了传真,API 会为您提供“StoreAsNewLibraryDocument”选项,该选项在运行时会引发异常。System.ArgumentException:值不在预期范围内

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

对我们来说重要的是如何通过 RFCOMAPILib 使用 API 以最有效的方式发送 500 份传真。我认为如果我们可以重复使用附件的 PDF,它将大大提高性能。显然,当您有数百个收件人时,在 40 秒内发送传真是不可接受的。

我们如何通过 API 以最高效的方式发送带附件的传真?

4

1 回答 1

1

StoreAsNewLibraryDocument() 是使用 RightFax COM API 存储 LibraryDocuments 的唯一实用方法,但假设您没有使用预先存在的 LibraryDocument,您必须在发送第一个传真后立即调用该函数,该传真将具有常规文件 (不是LibraryDoc) 附件。

(不要像上面那样自己在服务器上创建 LibraryDoc 对象 - 如果您在服务器上有一个不是 LibraryDocument 的现有文件,并且您想将它变成一个文件,那么您只会这样做。您'可能永远不会遇到这种情况。)

然后,您指定为 StoreAsNewLibraryDocument() 的第一个参数的 ID 字符串会引用新的 LibraryDocument(在随后的传真附件中)。如果该 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() 时,您最终会得到一个 PageCount 为零的 LibraryDoc。这似乎是随机发生的,可能是由于 RightFax 中的错误,或者可能是服务器配置错误。所以检查一下是个好主意...

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

...在您发送任何后续传真之前,如有必要,重试直到它工作,或者(如果不能)以其他方式存储 LibraryDoc 并放弃 StoreAsNewLibraryDocument()。

然而,如果您没有这个问题,您通常可以在每次附加(和上传)本地文件时大约 1/10 的时间内发送一份群发传真。

如果来自 OpenText/RightFax 的人读到了这篇文章并可以解释为什么 StoreAsNewLibraryDocument() 有时会导致零页传真,那么对此的额外答案将不胜感激!

于 2013-09-17T18:37:36.477 回答