Если вы хотите сохранить вывод в строке, вы можете использовать stringio
. Вот пример:
#!/usr/bin/env ruby
require 'stringio'
require 'pp'
def output_to_string
sio = StringIO.new
old_stdout, $stdout = $stdout, sio
yield
$stdout = old_stdout # restore stdout
sio.string
end
result = output_to_string do
puts "hello"
pp ["value1", "value2", "value3"]
end
puts "result: #{result}"
Если вы выполните этот код, вы получите:
result: hello
["value1", "value2", "value3"]
Чтобы вызвать класс .NET из классического ASP, он должен быть зарегистрирован для взаимодействия с COM. Я не верю, что iTextSharp поддерживает это по умолчанию, но вы можете создать класс-оболочку, который взаимодействует с iTextSharp, и зарегистрировать этот класс для взаимодействия с COM.
Создание классов в .NET, которые регистрируются для взаимодействия с COM, относительно несложно. Просто убедитесь, что сборка имеет строгое имя (т. Е. Что вы подписываете ее - на вкладке «Подписание» свойств проекта установите флажок «Подписать сборку» и укажите файл ключа строгого имени [или сгенерируйте новый]) и что у вас установлен флажок «Зарегистрироваться для COM-взаимодействия» на странице «Сборка» свойств проекта.