|
Вложение печатной формы в ИнтернетПочту |
Я |
|
2dolist 29.03.18 - 12:45 | Добрый день. Формирую печатную форму и хочу программно её отправить.
Формат печатной формы - то, что возвращается после обращения к модулю менеджера документа, т.е. просто SpreadsheetDocument. Получател должен в итоге принять PDF документ.
Конечно, я могу сохранить SpreadsheetDocument в файл на диске в формате PDF и прикрепить файл, но с этим целый ряд проблем может быть с правами доступа и фаерволами. Можно ли как-то без сохранения на диск прикреплять печатные формы в формате пдф? Вроде ещё можно как двоичные данные крепить или использовать внутреннее хранилище?
|
FIXXXL 1 - 29.03.18 - 12:53 | ( 0) доступ в папку временных файлов есть? пиши тудой |
Cyberhawk 2 - 29.03.18 - 12:56 | У метода Записать() табличного документа есть вариант записи в поток, а не в файл
|
2dolist 3 - 29.03.18 - 12:56 | ( 2) так, сейчас глянем про записать |
2dolist 4 - 29.03.18 - 13:04 | Не знаю как потоки работают. Там их 3 вида. Где можно почитать?
У меня задача - в цикле сохранять в структуру печатные формы в формате PDF. Поток подойдёт для этого?
|
Масянька 5 - 29.03.18 - 13:13 | ( 1) Поддержу. После отправки - спокойно удалять файлы. |
2dolist 6 - 29.03.18 - 13:24 | Хочется с потоками разобраться =) В файл всегда можно записать если что.
|
Масянька 7 - 29.03.18 - 13:26 | ( 6) Любопытный или упорный? :))))) |
Cyberhawk 8 - 29.03.18 - 13:27 | Создавай отдельную тему, раз не осилил потоки
|
2dolist 9 - 29.03.18 - 14:35 | Пытаюсь так сделать:
Stream = New MemoryStream();
PrintDocument.Write(Stream, SpreadsheetDocumentFileType.PDF);
DataReaderStream = New DataReader(Stream);
StreamRead = DataReaderStream.Read();
BinaryData = StreamRead.GetBinaryData();
Stream.Close();
но в результате нечитаемый файл, по видимому пустой |
Ц_У 10 - 29.03.18 - 15:02 | ( 9) тут не по-русски все, мы не понимаем, мы не высокие программисты
Рекламное место пустует
|
2dolist 11 - 29.03.18 - 15:19 | Да ладно, не придирайтесь. Требование просто есть такое - по-английски писать код.
|
2dolist 12 - 29.03.18 - 16:07 | ( 1) В общем, попробовал через временные файлы, на этапе удаления пишет, что файл занят другой программой и не может удалить файл. Так он там и остаётся в темпе лежать.
FileAddress = GetTempFileName("pdf");
PrintDocument.Write(FileAddress, SpreadsheetDocumentFileType.PDF);
Message.Attachments.Clear();
Message.Attachments.Add(FileAddress);
Try
Mail.Send(Message);
Except
EndTry;
DeleteFiles(FileAddress); |
Масянька 13 - 29.03.18 - 16:39 | ( 12) А что такое PrintDocument? |
FIXXXL 14 - 29.03.18 - 16:43 | |
Масянька 15 - 29.03.18 - 16:54 | ( 14) Понятно.
Тогда к ( 12) - не закрыт файл.
У меня в семерке используется Йоксель (как раз для сохранения в pdf) и Йоксель (после записи файла) очищается. |
2dolist 16 - 29.03.18 - 18:18 | |
2dolist 17 - 29.03.18 - 19:22 | Не получается победить удаление временного файла
|
Cyberhawk 18 - 29.03.18 - 19:55 | FileMon в помощь
|