|
Вложение печатной формы в ИнтернетПочту | ☑ | ||
---|---|---|---|---|
0
2dolist
29.03.18
✎
12:45
|
Добрый день. Формирую печатную форму и хочу программно её отправить.
Формат печатной формы - то, что возвращается после обращения к модулю менеджера документа, т.е. просто SpreadsheetDocument. Получател должен в итоге принять PDF документ. Конечно, я могу сохранить SpreadsheetDocument в файл на диске в формате PDF и прикрепить файл, но с этим целый ряд проблем может быть с правами доступа и фаерволами. Можно ли как-то без сохранения на диск прикреплять печатные формы в формате пдф? Вроде ещё можно как двоичные данные крепить или использовать внутреннее хранилище? |
|||
1
FIXXXL
29.03.18
✎
12:53
|
(0) доступ в папку временных файлов есть? пиши тудой
|
|||
2
Cyberhawk
29.03.18
✎
12:56
|
У метода Записать() табличного документа есть вариант записи в поток, а не в файл
|
|||
3
2dolist
29.03.18
✎
12:56
|
(2) так, сейчас глянем про записать
|
|||
4
2dolist
29.03.18
✎
13:04
|
Не знаю как потоки работают. Там их 3 вида. Где можно почитать?
У меня задача - в цикле сохранять в структуру печатные формы в формате PDF. Поток подойдёт для этого? |
|||
5
Масянька
29.03.18
✎
13:13
|
(1) Поддержу. После отправки - спокойно удалять файлы.
|
|||
6
2dolist
29.03.18
✎
13:24
|
Хочется с потоками разобраться =) В файл всегда можно записать если что.
|
|||
7
Масянька
29.03.18
✎
13:26
|
(6) Любопытный или упорный? :)))))
|
|||
8
Cyberhawk
29.03.18
✎
13:27
|
Создавай отдельную тему, раз не осилил потоки
|
|||
9
2dolist
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) тут не по-русски все, мы не понимаем, мы не высокие программисты
|
|||
11
2dolist
29.03.18
✎
15:19
|
Да ладно, не придирайтесь. Требование просто есть такое - по-английски писать код.
|
|||
12
2dolist
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?
|
|||
14
FIXXXL
29.03.18
✎
16:43
|
(13) ТабДок
|
|||
15
Масянька
29.03.18
✎
16:54
|
(14) Понятно.
Тогда к (12) - не закрыт файл. У меня в семерке используется Йоксель (как раз для сохранения в pdf) и Йоксель (после записи файла) очищается. |
|||
16
2dolist
29.03.18
✎
18:18
|
(15) а как его закрыть?
|
|||
17
2dolist
29.03.18
✎
19:22
|
Не получается победить удаление временного файла
|
|||
18
Cyberhawk
29.03.18
✎
19:55
|
FileMon в помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |