استفاده از چاپگرهای مجازی و چاپ فایل Doc
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: دو دقیقه

 می خواهیم با استفاده از چاپگرهای مجازی نصب شده روی سیستم خود یک فایل Doc را به یک فایل TIF تبدیل یا به عبارت دیگر داخل فایل تصویری چاپ کنیم. یک نمونه عملی، استفاده در سیستم دبیرخانه می‌تواند باشد. کاربر متن نامه را داخل محیط Word تایپ کرده و هنگامی که نامه را ارسال می‌کند، گردش کار با این فایل تصویری انجام خواهد شد.

پس از ایجاد پروژه جدید، یک ارجاع از Microsoft.Office.Interop.Word به پروژه خود اضافه میکنیم

در هنگام نصب مجموعه Office می‌توانید یک چاپگر مجازی بنام Microsoft Office Document Image Writer را نصب کنید. می‌خواهیم از آن برای رسیدن به هدفمان استفاده کنیم.

حال یک فایل Word آماده میکنیم.

با استفاده از کدهای زیر می‌توان فایل ذخیره شده را به یک فایل تصویری با قالب TIF تبدیل کنیم

private void btnPrint_Click(object sender, EventArgs e)
        {
            try
            {
                object varFileName = @"d:\test.doc";
                object varFalseValue = false;
                object varTrueValue = true;
                object varMissing = Type.Missing;
                Microsoft.Office.Interop.Word.Application varWord = new
                Microsoft.Office.Interop.Word.Application();

                varWord.ActivePrinter = "Microsoft Office Document Image Writer";
                //                varWord.ActivePrinter = "Snagit 11";
                //                varWord.ActivePrinter = "priPrinter";
                //                varWord.ActivePrinter = "doPDF v7";

                Microsoft.Office.Interop.Word.Document varDoc =
                varWord.Documents.Open(ref varFileName, ref varMissing, ref varFalseValue,ref varMissing,
                                       ref varMissing, ref varMissing, ref varMissing, ref varMissing, 
                                       ref varMissing, ref varMissing, ref varMissing, ref varMissing,
                                       ref varMissing, ref varMissing, ref varMissing, ref varMissing);
                varDoc.Activate();

                object PrintToFile = true;
                object OutputFileName = @"d:\test.tif";
                varDoc.PrintOut(ref varMissing, ref varFalseValue, ref varMissing,
                                ref OutputFileName, ref varMissing, ref varMissing, ref varMissing,
                                ref varMissing, ref varMissing, ref varMissing, ref PrintToFile,
                                ref varMissing, ref varMissing, ref varMissing, ref varMissing, 
                                ref varMissing, ref varMissing, ref varMissing);

                varDoc.Close(ref varMissing, ref varMissing, ref varMissing);
                varWord.Quit(ref varMissing, ref varMissing, ref varMissing);
            }
            catch (Exception varE)
            {
                MessageBox.Show("Error:\n" + varE.Message, "Error message");
            }
        }
شما می‌توانید متناسب با نیاز خود از سایر چاپگرهای مجازی نصب شده استفاده نمایید.
varWord.ActivePrinter = "Snagit 11";
varWord.ActivePrinter = "priPrinter";
varWord.ActivePrinter = "doPDF v7";
نتیجه کار در قالب یک فایل TIF


PRINTDOC.ZIP

  • #
    ‫۱۰ سال و ۸ ماه قبل، شنبه ۱۹ بهمن ۱۳۹۲، ساعت ۱۳:۵۷
    ممنون،
    فقط یک نکته چاپگر Microsoft Office Document Image Writer از آفیس 2010 به بعد حذف شده، آیا برای این مورد راه حلی سراغ دارید؟
    البته در آفیس 2007 به صورت پیش فرض نصب نیست و باید این صورت  نصبش کنیم.
    • #
      ‫۱۰ سال و ۸ ماه قبل، شنبه ۱۹ بهمن ۱۳۹۲، ساعت ۱۵:۱۹
      - از fax driver استاندارد ویندوز می‌شود استفاده کرد.
      + آفیس‌های جدید امکان ذخیره سازی متن را به صورت PDF، پشتیبانی می‌کنند.
  • #
    ‫۱۰ سال و ۷ ماه قبل، چهارشنبه ۳۰ بهمن ۱۳۹۲، ساعت ۲۳:۴۹
    مرسی خیلی خوب و مفید بود
    با آفیس 2013 اگه بخواهیم سند پی دی اف تولید کنیم چطور میشه از این برنامه استفاده کرد ؟
    روشش خیلی کُنده حالا نمیدونم مشکل از منه یا سیستم ، روش دیگه ای هم هست ؟
    • #
      ‫۱۰ سال و ۷ ماه قبل، پنجشنبه ۱ اسفند ۱۳۹۲، ساعت ۲۳:۲۸
      شما بسته به نیاز خود می‌توانید هر چاپگری با هر قابلیتی را نصب و استفاده کنید. در این روش برای چاپ مطالب از چاپگر مجازی استفاده می‌شود. در خط 13-15 کد فوق از سه چاپگر مجازی دیگر استفاده شده که doPDF خروجی pdf تولید می‌کند.شاید سایت colorpilot و یا gemboxsoftware مفید واقع بشه.