Значительная часть текстовых документов сегодня создаётся и редактируется в программе Microsoft Word. Наличие этой программы практически на каждом компьютере даёт возможность автоматизировать печать, обработку и экспорт текстовых документов в PDF, используя API Microsoft Word.
В этой статье я расскажу, как автоматизировать печать текстовых документов и конвертирование документов в формат PDF.
Пример исходного кода для печати текстового документа, написанный на языке Microsoft Visual Basic.NET, выглядит так:
Этот код выглядит очень просто. Но для автоматизации печати списка документов следует учесть ряд нюансов:
1. Людям нужна возможность задавать имя используемого принтера
2. Нужно заставить программу Word работать в невидимом режиме, а не появляться на экране при обработке каждого документа
3. Нужно отключить все информационные сообщения и запросы на подтверждение операций с документами
4. Нужно отключить добавление обработанных в автоматическом режиме файлов в список «Recent files».
Видеоурок № 02: Программа «Заполнитель»
Доработанный вариант нашей программы будет выглядеть так:
Я считаю, что этого кода вполне достаточно, что бы сдать зачёт по программированию в университете. Но до внедрения его в коммерческое приложение следует решить еще несколько вопросов.
1. Этот код не будет работать, если входной файл имеет атрибут «Read only».
2. Производительность вашей программы можно увеличить в несколько раз, если открывать и закрывать только документы, а приложение Microsoft Word оставлять открытым.
3. Многим пользователям нужна возможность печати только заданного диапазона страниц, а не всего документа целиком, а так же возможность напечатать несколько копий документа.
4. Этот код не будет работать, если ваша программа запущена из Windows Tasks Scheduler или от имени Windows Service.
В этой статье я не стану рассказывать о том, как решить эти четыре задачи, что бы не делать жизнь моих читателей слишком скучной. Скажу лишь, что в программах Print Conductor, FolderMill и 2Printer они были мной успешно решены.
Для конвертирования документа в PDF нужно заменить функцию PrintOut на ExportAsFixedFormat. После этого наш код будет выглядеть так:
Этот пример будет работать, если на вашем компьютере Microsoft Word 2007 SP2 или его более новая версия.
Функция ExportAsFixedFormat не будет работать, если на компьютере не установлено ни одного принтера. Либо если один из установленных принтеров не назначен в качестве system default printer.
Код экспорта документов в PDF можно улучшить, реализовав возможность экспорта части страниц документа, а так же возможность экспорта документов в PDF/A. Обе эти возможности компания Microsoft реализовала в функции ExportAsFixedFormat.
Примеры коммерческих приложений, использующих этот код для конвертирования документов в PDF: DocuFreezer и FolderMill.
Источник: habr.com
Как исправить ошибку в 1С «Файл базы данных поврежден»
6835
– Через 2 — 3 мин. остановить журнал. – Просмотреть Результаты, открыв файл журнала в Ехсеl. Объяснить полученные результаты. – Исследовать программу еще раз, указав тип журнала —двоичный (чтобы потом можно было просмотреть диаграммы). 5. Создать журнал трассировки для исследования своего приложения. Создать Оповещения по выбранным счетчикам для своего приложения.
Просмотреть журнал событий. Объяснить полученные результаты. Ответьте на вопросы: 1. Что можно просматривать, используя счетчики в системном мониторе? 2. В каких видах можно просматривать информацию о производительности? Часть 3. Дополнительное задание 1. Найти в Интернет бесплатную программу Process Explorer для Microsoft Windows. 2. Установить ее на компьютер.
3. Произвести исследование ее работы. Ответьте на вопрос: 1. Сколько потоков содержит запущенная на вашем компью- тере программа Microsoft Word? Трудоемкость практической работы: 9 часов. 21
ПРАКТИЧЕСКАЯ РАБОТА № 2. «Исследование блоков управления памятью» 2.1 Цель работы Изучение структуры системных таблиц реального режима Windows и организации цепочек блоков памяти. 2.2 Организация хранения байтов в памяти При просмотре памяти имейте в виду, что двухбайтовые слова хранятся в виде <младший байт> – т.е. порядке обратном естественному представлению многоразрядного числа. То же самое относится к порядку расположения слов в двойном слове – сначала младшее слово, потом старшее. Всегда действует общий принцип – младшее лежит в ячейке памяти с младшим адресом. Таким образом, полный 4-х байтный указатель (например, на таблицу таблиц) 1234:5678H будет в дампе памяти выглядеть как: 78 56 34 12
/ | / |
| | |___ старшее слово с переставленными байтами |
| |
|_________ младшее слово с переставленными байтами 2.3 Информация о структурах памяти Это список указателей, каждый из которых представляет собой двойное слово (4 байта). Старшее слово – это сегментный адрес, младшее – смещение в сегменте. Например, для указателя, у которого сегментный адрес=1234H, а смещение 5678H, абсолютный физический адрес ячейки памяти образуется, как сумма сегментного адреса * 16 + смещение (т.е. сегментный адрес сдвинут влево на 1 шестнадцатерич-
ный разряд): | ||
1234 H | 0110 H | 0112 H |
+ 5678H | + 0026H | + 0006H |
——— | ——— | ——— |
=179B8H | =01126H | =01126H |
Таким образом 0110:0026 – это тоже, что и 0112:0006 ! 2.4 Структура таблицы таблиц Данная структура является НЕДОКУМЕНТИРОВАННОЙ и используется для изучения низкоуровневой информации о структурах памяти.
Смещение | Длина | Содержимое |
-2 | 2 | сегментный адрес 1 MCB |
4 | указатель на 1 DPB (Disk Parameters Block ) | |
+ 4 | 4 | указатель на список таблиц открытых файлов |
22 |
Блок памяти
+ 8 | 4 | указатель на первый драйвер DOS (CLOCK$) |
… | … | … |
2.5 Структура блока управления памятью (MCB) MCB – Это НЕДОКУМЕНТИРОВАННЫЙ управляющий блок, который используется при распределении, модификации и освобождении блоков системной памяти.
Смещение | Длина | Содержимое | |||||||||
+0 | 1 | ‘M’ (4dH) – за этим блоком есть еще блоки | |||||||||
‘Z’ (5aH) – данный блок является последним | |||||||||||
+1 | 2 | Владелец, параграф владельца (для FreeMem); | |||||||||
0 = владеет собой | |||||||||||
+3 | 2 | Размер, число параграфов в этом блоке рас- | |||||||||
пределения. Параграф равен 16 байтам | |||||||||||
+5 | 0Bh | Зарезервировано | |||||||||
+10h | ? | Блок памяти начинается здесь и имеет длину | |||||||||
(Размер*10H) байт | |||||||||||
Замечания: | |||||||||||
— | блоки памяти все- | ||||||||||
Программа | |||||||||||
гда выровнены на | |||||||||||
границу параграфа | |||||||||||
PSP | – указатель | ||||||||||
(«сегмент блока»); | |||||||||||
на окружение | |||||||||||
— | блоки M-типа: сле- | ||||||||||
дующий | блок | ||||||||||
находится по (сег- | |||||||||||
Окружение | |||||||||||
мент блока + Раз- | |||||||||||
мер):0000; | |||||||||||
Имя | файла, | из | — | блоки Z-типа: (сег- | |||||||
которого загру- | мент блока | + Раз- | |||||||||
жена программа | |||||||||||
мер):0000 = | конец | ||||||||||
памяти | |||||||||||
MCB, хозяин | (a000H=640K). |
В любом MCB указан его владелец – сегментный адрес PSP (префикс про- граммного сегмента) программы владельца данного блока памяти. А в PSP есть ссылка на окружение данной программы, в котором можно найти имя программы – путь ее запуска. Следует помнить, что сама программа (и PSP в том числе) и ее окружение сами располагаются в блоках памяти. Поэтому, в MCB блока 23
памяти самой программы в качестве хозяина указан собственный адрес самого себя. Когда программа в реальном режиме начинает выполнение, DS:0000 и ES:0000 указывают на начало PSP этой программы. Информация PSP позволяет выделить имена файлов и опции из строки команд, узнать объем доступной памяти, определить окружение и т.д.
Использование окружения . Окружение не превышает 32 Kбайт и начинается на границе параграфа. Смещение 2Сh в PSP текущей программы содержит номер параграфа окружения.
Вы можете найти нужное ‘имя’ серией сравнений строк ASCIIZ (Строка ASCIIZ, используемая во многих функциях DOS и в языке C, представляет собой последовательность символов ASCII, заканчивающуюся байтом 00H), пока не дойдете до пустой строки (нулевой длины), что указывает конец окружения. Обычно ‘имя’ в каждой строке окружения задано прописными буквами, но это необязательно.
Более подробную информацию о структурах памяти можно получить из справочника TECH Help! 2.6 Задание на выполнение Часть 1. 1. Подготовиться к работе, используя материалы лекций, данное пособие, справочник TEACH-HELP.
2. Познакомиться с работой одной из программ, позволяющих просмотреть содержимое ОЗУ в виде шестнадцатеричного дампа – например, PEEK.COM (во время работы доступен HELP – F1, карта памяти – F8 и информация о блоке памяти – F6). 3. Найти в памяти таблицу таблиц (для получения ее адреса – запусти lol.com), познакомиться с ее содержимым и посмотреть указатель на 1 MCB (упр. блок памяти).
4. Проследить в памяти цепочку блоков, определяя их принадлежность и сравнивая с информацией из карты памяти (F8). 5. Написать отчет о найденной цепочке блоков памяти с их адресами и размерами. Часть 2. Дополнительное задание 1. Найти в Интернет бесплатную программу Process Explorer для Microsoft Windows. 2. Установить ее на компьютер. 3. Произвести исследование ее работы.
Ответьте на вопрос: 1. Сколько потоков содержит запущенная на вашем компьютере программа Microsoft Word? Трудоемкость практической работы: 9 часов. 24
ПРАКТИЧЕСКАЯ РАБОТА № 3. «Диагностика IPпротокола» 3.1 Цель работы Целью работы является проверка работоспособности сетевого подключения в ОС Windows, через диагностику IP-протокола. 3.2 Просмотр свойств сетевого окружения Получить информацию о свойствах сетевого окружения возможно с использованием следующих действий: Нажмите кнопку «Пуск» и в появившемся окне щелкните правой кнопкой мыши по пункту «Сетевое окружение».
В появившемся контекстном меню выберите пункт «Свойства». Перед вами появится окно, показанное на рис. 3.1. Рис. 3.1. Свойства сетевого окружения Чтобы получить информацию о свойствах подключения по ло- кальной сети, щелкните по надписи «Подключение по локальной сети» правой кнопкой мыши и также в появившемся меню выберите свойства.
В появившемся окне (рис. 3.2) вы можете настраивать протоколы сетевых взаимодействий. 25
Рис. 3.2 – Свойства подключения по локальной сети Важным элементом в свойствах подключения по локальной сети, является протокол Интернета TCP/IP [3]. Выбрав это компонент и нажав кнопу «Свойства» откроется окно (рис. 3.3) где можно устанавливать настройки сетевого подключения по протоколу TCP/IP. 26
Рис. 3.3 Свойства протокола Интернета (TCP/IP) 3.3 Утилита диагностики сети Существуют различные утилиты, позволяющие быстро протестировать IP-подключение. Однако большинство операций легко может быть выполнено с использованием команд самой операционной системы. Пользователи Windows XP для диагностики сетевого подключения могут воспользоваться специальным мастером.
Эта программа вызывается из меню задачи «Сведения о системе». Произведите следующие действия (Пуск > Все программы > Стандартные > Служебные > Сведения о системе > меню Сервис > Диагностика сети). На рисунке 3.4 показан процесс работы утилиты «Диагностики сети». На 27
рис. 3.5. результат работы утилиты по диагностики сетевого подключения. Рис. 3.4 Ход работы утилиты «Диагностика сети» 28
Рис. 3.5 Ход работы утилиты «Диагностика сети» 3.4 Утилита «Ipconfig» Для отображения параметров IP-протокола в ОС на платформе Windows NT используются утилиты ipconfig. Эта утилита выводит на экран основные параметры настройки протокола TCP/IP: значения адреса, маски, шлюза [3]. 29
1. Нажмите кнопку «Пуск», выберите строку меню «Выполнить», наберите символы cmd (запуск консоли командной строки) и нажмите клавишу Enter на клавиатуре. 2. Введите команду: ipconfig /all . При нормальной работе компьютера на экран должен вывестись примерно такой листинг: Windows IP Configuration Host Name . . . . . . . . . . . . : w9 Primary Dns Suffix . . . . . . . : aoi.tusur.ru Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : aoi.tusur.ru tomsk.ru Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : aoi.tusur.ru Description . . . . . . . . . . . : Intel(R) PRO/100 S Desktop Adapter Physical Address. . . . . . . . . : 00-03-BA-8D-42-5B Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 83.192.12.54 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 83.192.12.254 DHCP Server . . . . . . . . . . . : 83.192.12.2 DNS Servers . . . . . . . . . . . : 192.168.0.1 83.192.12.2 Primary WINS Server . . . . . . . : 83.192.12.2 Secondary WINS Server . . . . . . : 213.183.109.8 Lease Obtained. . . . . . . . . . : 27 августа 2012 г. 19:20:22 Lease Expires . . . . . . . . . . : 13 октября 2012 г. 19:20:22 Отключите сетевое подключение, повторите команду. При отсутствующем соединении на экран выводится примерно такой листинг: Windows IP Configuration Host Name . . . . . . . . . . . . : w9 Primary Dns Suffix . . . . . . . : aoi.tusur.ru Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : aoi.tusur.ru tusur.ru
Ethernet adapter Local Area Connection: | ||
Media State . . . . . . . . . . . | : Media disconnected | |
Description . . . . . . . . . . . | : Intel(R) PRO/100 | S |
Desktop Adapter | ||
Physical Address. . . . . . . . . | : 00-03-BA-8D-42-5 |
30
Источник: studfile.net
Почему Office потребляет 100% ресурсов ЦП при открытии Excel или Word?
Microsoftизвестный офисный пакет, Office , состоит из серии программ, которые можно считать одними из наиболее широко используемых в мире. Здесь мы находим такие предложения, как Word, Excel или PowerPoint, которые большинство из вас хорошо знают.
Это программы, которые удовлетворяют потребности большинства пользователей при выполнении офисных задач. Неудивительно, что мы находим мощный текстовый редактор, приложение для создания электронных таблиц, приложение для создания мультимедийных презентаций, e-mail менеджер, клиент облачного хранилища и т. д. Именно из-за всего этого и благодаря тому, что их собственные форматы файлов настолько широко распространены, они являются одной из самых известных программ.
Поскольку иначе компания Microsoft не могла бы нести ответственность за весь пакет, она отвечает за отправку постоянных обновлений для повышения производительности этих приложений. На самом деле, они работают с нами уже много лет, так что недостатка в опыте у них нет. Однако мы можем обнаружить некоторые специфические проблемы при выполнении этих программных решений, о которых мы говорим. Одним из наиболее распространенных является замечание высокая ЦП использование на ваш компьютер во время работы Word, PowerPoint или Excel .
История вычислител.
Please enable JavaScript
Вы уже можете себе представить, что какими бы мощными ни были эти приложения, по общему правилу этого не должно происходить на современных компьютерах. На самом деле эта проблема могла негативно сказаться на других запущенных программах, в том числе на работе операционной системы. Есть несколько причин, по которым это проблема может возникнуть в офисе , поэтому мы собираемся упомянуть некоторые из наиболее распространенных.
Office потребляет слишком много ресурсов ЦП без видимой причины
Как мы уже упоминали, это проблема, которая может быть вызвана несколькими причинами. С одной стороны, стоит отметить, что файл, который мы собираемся открыть, большой . Как правило, офисные файлы обычно состоят из текста, чисел и какого-либо другого изображения. Но иногда мы находим некоторые из них полный графики, фотографий или даже видео , что значительно увеличивает их размер. Поэтому, когда вы пытаетесь запустить их в этих программах Office, загрузка ЦП может резко возрасти. Это особенно заметно, если у нас есть старое или несколько ограниченное оборудование.
С другой стороны, мы также должны обратить внимание на Windows Диспетчер задач . Иногда некоторые процессы, принадлежащие предыдущим сеансам с программами Office остались открытыми. Это означает, что при попытке их повторного запуска увеличивается потребление процессора, но программа не до конца открывается. В этом случае нам остается только завершить эти открытые процессы нажав на них правой кнопкой мыши. Это то, что мы должны проделать с каждым из тех, кого мы видим на экране.
Другая возможная причина, которую мы также должны иметь в виду, — это возможность того, что ошибка может возникнуть в наборе . Поэтому мы рекомендуем использовать функцию для решения задач, которые предлагает нам сама Microsoft. Для этого просто откройте приложение «Параметры Windows», щелкните раздел «Приложения» и найдите запись, соответствующую Office. После нажатия на кнопку Modify мы сможем исправить возможные проблемы этих программ .
Источник: itigic.com