Какую технологию взять
Не подскажите какую связку взять для реализации функции: В форму на сайте Пользователь вбивает данные, нажимает кнопку печать и ему печатается документ. (форм пока нет ваши идеи на чем, шаблоны документов в Word'овском формате).
1. Какую связку технологий взять 2. Как настроить формы для печати, когда все размеры, на листе напечатанном, критичны к макету. 3. Данные запоминать не надо. Просто пользователь вбивает в удобные формы а ему из них формируются документы. Мне нужен вектор куда "Копать". |
а нету чего-нибудь на JavaScript подобного
|
Парсеров word-документов на javascript - не встречал)
|
наоборот из javaScript в документ годен для печати на принтере в виде официальных документов. (Необязательно Word)
|
Нет проблем, но скрипт конечно написать придётся, готовые вряд ли есть.
Тебе понадобится шаблонизатор, jquery, и немного терпения :) Образец кода 1
<!DOCTYPE HTML>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<table width="100%">
<tr>
<td width="30%">
<form >
<input value="Текст 1 " id="a"/></br>
<input value="текст 2 " id="b"/></br>
<button id="print"> печать </button>
</form>
</td>
<td width="70%">
<iframe id="result" style="width:100%"></iframe>
</td>
</tr>
</table>
<script>
$(function(){
$("#print").click(function(){
$('#result').contents().find('body').load('');
//вместо это строчки нужен шаблонизатор
$('#result').contents().find('body').html( $('#a').val()+$('#b').val() );
window.frames['result'].focus();
window.frames['result'].print();
return false;
})
})
</script>
</body>
</html>
впринципе можно и без шаблонизатора обойтись, потребуется код вида образец кода
var template='http://learn.javascript.ru/play';
$('#result').contents().find('body').load(template, function(){
//заполняем определённые id в шаблоне (шаблон это html как несложно догадаться), данные берём из формы.
$('#result').contents().find('el').html( $('#b').val() );
window.frames['result'].focus();
window.frames['result'].print();
});
|
чуточку дороботанный пример,
добавлен примитивный шаблонизатор. поле tmpl в шаблоне указывает на id формы, откуда будет взято значение. песочница код/пример
<!DOCTYPE HTML>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<table width="100%">
<tr>
<td width="30%">
<form id="templator">
<input value="Текст 1 " id="a"/></br>
<input value="текст 2 " id="b"/></br>
<button id="print"> печать </button>
</form>
</td>
<td width="70%">
<iframe id="result" style="width:100%">
</iframe>
</td>
</tr>
</table>
<script>
$(function(){
// образец шаблона
var tmpl=' поле1=<b tmpl="a"></b></br>'
+' поле2=<b tmpl="b"></b></br>';
$("#print").click(function(){
var el=$('#result').contents().find('body');
//вставим шаблон в фрейм
el.html(tmpl);
//шаблон можно загрузить и с сервера
//$('#result').contents().find('body').load('')
//шаблонизатор
$('#templator input').each(function(){
var i=el.find( "[tmpl^='" + $(this).attr('id') + "']");
i.html( $(this).val() )
})
// печать
window.frames['result'].focus();
window.frames['result'].print();
// отменим действие по умолчанию
return false;
})
})
</script>
</body>
</html>
|
Да то что надо, но встречный вопрос. Мне необходимо вставлять поля в разные документы, соответственно у меня будет много шаблонов. Как лучше оптимизировать код. Загружать отдельными html ( var template='http://learn.javascript.ru/play'; ) документами и в них вставлять или написать много "шаблоных переменных tmpl" и уже ими оперировать?
Поставить код загрузки файлов HTML непосредственно при нажатии кнопки данного типа? Заранее спасибо пошел писать формы потом перейду к шаблонам )) |
| Часовой пояс GMT +3, время: 14:22. |