Мы можем настроить Universal Document Coverter в качестве принтера по умолчанию и вызвать печать с использованием объекта IE, как показано в приведенном ниже коде. Однако документы MHT, имеющие несколько кадров, в итоге генерируют несколько изображений для каждого кадра. Мы также должны ограничить эту печать до 1-й страницы документа. Примите во внимание любые соображения по поводу использования любых других доступных библиотек IE DLL, которые можно использовать, чтобы избежать проблемы с несколькими кадрами и ограничить печать первой страницей документа.
using System;
using System.Collections.Generic;
using System.Text;
using SHDocVw;
using System.Threading;
namespace htmconverter
{
class Program
{
static void Main(string[] args)
{
object missingValue = Type.Missing;
InternetExplorer iexp = new InternetExplorer();
iexp.Navigate("file://c:/c.mht", ref missingValue, ref missingValue, ref missingValue, ref missingValue);
// while(OLECMDID.OLECMDID_PRINT!=OLECMDF.OLECMDF_SUPPORTED)
iexp.ExecWB(OLECMDID.OLECMDID_PRINT, OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref missingValue, ref missingValue);
Thread.Sleep(2000);
}
}
}