0
Отвечен

Печать таблицы в word

Алексей Панчихин 2 года назад в Прочее обновлен 2 года назад 7

Добрый день! Почитал рекомендации по решению скриптовой печати в word, не получилось! Если если пример, приведите пожалуйста заполнение шаблона word по закладкам!

obj=CreateObject("Word.Application");

string NameDoc = GetPathXLT(NameCommonDir(),"Card.Docx"); // путь к шаблону
var doc=obj.Documents.Add(NameDoc);

и дальше методы объекта doc для его заполнения по закладкам - то что у меня не получилось!

На рассмотрении

Добрый день!

Печать в word не практиковал..

Нужен именно word? Печать в Excel не устраивает от слова совcем?

Задача вроде как простая: заполнить шаблон для печати карточки сотрудника на бланке (до сего времени заполняется рукописью расчетчиками уже не одно десятилетие). Бланки из утолщенной плотной бумаги, которые выдерживают наклеенные квитки за все время работы, поэтому их нельзя заменить на простую распечатку, иначе и задачи такой не было бы! Обращение к word вынужденное, т.к. бланк содержит не только разрозненные колонки таблиц, но и разные по высоте строки в них на одной параллели, еще и строки в таблицах разлинованные, поэтому желательно точное попадание. word позволяет сконструировать на подложке таблицы нужного формата. Единственный пример  с word- скрипт SLUICE.S, объект word создается, но примененные к нему методы выдают ошибку.

Подобрал метод вывода по закладкам! Спасибо!

Отлично.

Можете здесь выложить пример скрипта...

З.ы. все же не понял почему нельзя word заменить excel - в последнем можно "нарисовать" любую печатную форму..

+1

obj=CreateObject("Word.Application");

string NameDoc = GetPathXLT(NameCommonDir(),"Card.Docx"); // путь к шаблону
var doc=obj.Documents.Add(NameDoc);

var Range;
string txt;

//**************

Str=CTabl.TextS("FIO",zap); //как обычно, берем из таблицы по номеру записи zap
OemToChar(Str,Str);
txt = RTrim(Str); //приведение к типу оказалось обязательным перед помещением в закладку
Range = doc.Bookmarks("fio").Range;
Range.Text = txt;

//****************

char Dir[128];
GetCurrentDirectory(128,Dir);
NameDoc = Dir + "\\newword.doc";
doc.SaveAs(NameDoc);
doc.Select(); //документ после формирования остается открытым для дальнейших действий

Если не сложно, подскажите, пжл, функцию приема для наименования квалификационной категории по соотв. полю КЧ "egisz_qc"

Сервис поддержки клиентов работает на платформе UserEcho