2015-08-12 4 views
1

Как я могу создать файл (например, файл PDF) из бинарного потока, который я сохранил в глобальном? У меня есть поток, хранящийся в caché global, и мне нужно создать и сохранить файл, созданный потоком, используя ObjectScript.Файл ObjectScript create from stream

Спасибо :)

ответ

3

Не все так просто. Существует только один официальный способ создания pdf в кеше, и это ZEN reports. С отчетами ZEN вы можете создать не только pdf, но и сделать html, xlsx. ZEN Reports использует Apache FOP для его создания, любые другие способы также возможны, но вы должны делать это только самостоятельно.

Возможно, я неправильно понял вас, и вы имеете в виду, что ваш двоичный поток уже содержит PDF, и вы просто хотите сохранить его в каком-то файле. Если это так, вам просто нужно скопировать ваш глобальный поток в filestream с кодом:

set fs=##class(%Stream.FileBinary).%New() 
set fs.Filename="c:\temp.pdf" 
set tSC=fs.CopyFrom(yourStream) 
set tSC=fs.%Save() 
+0

У меня есть поток в строковой переменной. Я использовал ваш код и заменил fs.CopyFrom (yourStream) на fs.Write (yourStream), и он отлично работает. Я действительно благодарю вас. Ты спас меня много раз :) – mrfazolka