StoreAsNewLibraryDocument () - это единственный практический способ хранения LibraryDocuments с использованием RightFax COM API, но если вы не используете ранее существующий LibraryDocument, вам нужно вызвать функцию сразу после отправки первого факса, который будет иметь обычный файл ( не LibraryDoc) вложение.
(Не создавайте объект LibraryDoc на сервере самостоятельно, как вы делали выше - вы сделаете это, только если у вас есть файл на сервере, который не является LibraryDocument, и вы хотите превратить его в один. Вероятно, вы никогда не встретите такой сценарий.)
Затем на новый LibraryDocument ссылаются (в последующих факсах) на строку идентификатора, указанную в качестве первого аргумента StoreAsNewLibraryDocument (). Если этот идентификатор не уникален для коллекции LibraryDocuments сервера RightFax, вы получите сообщение об ошибке. (Вместо этого вы можете использовать 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 ().
Принимая во внимание, что если у вас нет такой проблемы, вы обычно можете отправить массовый факс примерно в 1/10 от времени, необходимого для того, чтобы каждый раз прикреплять (и загружать) локальный файл.
Если кто-то из OpenText / RightFax читает это и может объяснить, почему StoreAsNewLibraryDocument () иногда приводит к факсам с нулевой страницей, дополнительный ответ по этому поводу был бы весьма полезен!