Распечатать MHT-документ с помощью программы .NET - PullRequest
0 голосов
/ 18 сентября 2009

Мы хотели бы программно распечатать документ MHT с использованием .NET и любых доступных библиотек DLL IE или любого другого средства просмотра документов. Мы также хотели бы ограничить эту печать до 1-й страницы документа. Если в файле MHT несколько кадров, мы хотим, чтобы распечатка отображалась так, как она отображается на веб-странице. Цените любые преграды вокруг этого.

Спасибо

1 Ответ

0 голосов
/ 19 сентября 2009

Мы можем настроить 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);


        }
    }
}
...