|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Кто нибудь формировал печатные формы в PDF? У меня веб приложение, остро стоит проблема печати форм строгой отчётности. Пока что просто формирую HTML страницу и предлагаю пользователю её распечатать, но здесь вмешиваются настройки печати браузера - положение страницы, отступы, колонтитулы, масштабирование, в общем беда. Расскажите кто как выходит из положения? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 12:12 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
u78, xslt --> fop --> pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 13:06 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
13-й Пилигримu78, xslt --> fop --> pdf Можно поподробнее? что такое FOP ? он на клиенте работает или на сервере? как из fop в pdf ? нельзя сразу в pdf скажем из xml ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 13:14 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
u7813-й Пилигримu78, xslt --> fop --> pdf Можно поподробнее? что такое FOP ? он на клиенте работает или на сервере? как из fop в pdf ? нельзя сразу в pdf скажем из xml ? FOP процессор преобразования XML в PDF. С недавних пор (вроде с 2010 версии) входит в состав устанавливаемого Cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 13:29 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Мне понравилось через LaTeX: http://karataev.nm.ru/cache/csppdf.html ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 13:33 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
DAiMorС недавних пор (вроде с 2010 версии) входит в состав устанавливаемого Cache. Странно, что все помалкивают о zen-reports. Кажется у Алёны неплохо получалось, но видимо в екселевский шаблон все же попроще отдавать данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 16:21 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
kolesovDAiMorС недавних пор (вроде с 2010 версии) входит в состав устанавливаемого Cache. Странно, что все помалкивают о zen-reports. Кажется у Алёны неплохо получалось, но видимо в екселевский шаблон все же попроще отдавать данные. а как отдавать данные в екселевский шаблон? можно чуть поподробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 16:26 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
kolesovСтранно, что все помалкивают о zen-reports. Там, например, нельзя сунуть в ячейку раздельно два свойства... А уш с форматированием и подавно... Простенькое что-то - можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 16:49 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
u78а как отдавать данные в екселевский шаблон? Как вариант. Открываешь шаблон Экселем... Давишь на кнопку "Взять данные"... А там ВБА подключается к Кащею и сам забирает данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 16:51 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Есть объектный генератор файлов формата xml-excel. Если заинтересует, могу выложить более новую версию. http://www.sql.ru/forum/814407-2/generaciya-xml-excel-faylov ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 18:36 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Блок А.Н.Есть объектный генератор файлов формата xml-excel. Если заинтересует, могу выложить более новую версию. http://www.sql.ru/forum/814407-2/generaciya-xml-excel-faylov Выложить бы на GitHub ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2013, 18:36 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
u78 а как отдавать данные в екселевский шаблон? можно чуть поподробнее? Еще можно вот так: Zen Reports и %XML.Writer для генерации отчётов Excel в Caché ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 10:23 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
u78, у нас свой клиент разработан для печати из csp и терминальных приложений. Требует установки на клиенте, отлично работает под wine и crossover. Печать разработанных в генераторе отчетов форм (соблюдения всех полей и тд). Возможно печать составных отчетов и автоматический экспорт в PDF/RTF/XLS. Григорий ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 11:08 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Еще вариант: u78 просто формирую HTML страницу и предлагаю https://code.google.com/p/wkhtmltopdf/ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2013, 16:41 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Как в итоге решили задачу? У нас такая же появилась. Нужно генерировать pdf на клиенте(и возможно сервере) с заполнением полей в текстовом док-те (договор, например, где большая часть текста не меняется). Параметры вытягиваются из объектов. Возможно ли это делать через zen reports, без использования sql запросов? Сейчас сделано через HTML, но это конечно очень не удобно. Вид документов может существенно меняться и приходится заново делать верстку, я уж не говорю про колонтитулы (даже забирая html который генерит ворд это всё занимает время). Задача вроде бы стандартная, кто как делает? Из вариантов:1) zen reports, но пока не понятно как 2) подключиться к какому нибудь js/.net средству типа iText. 3) Latex вот теперь. Но Word не подходит. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 12:12 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Retardust, Ничего не заюзал, так и выдаю в HTML ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 12:19 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
В нашем проекте используется MS Office WebApps, для быстрого отображения в вебе документов MSOffice, и он же поддерживает печать в PDF. Файлы Word у нас генерируются и могут редактироваться, и по достижении определенного этапа, должны стать нередактируемыми, и мы их переделываем в PDF с помощью OfficeWebApps. OfficeWebApps ставится на отдельном сервере в домене, полностью только веб приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 12:29 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
автор1) zen reports, но пока не понятно как Например так (вызвать метод Run) Class tmp.tmpPdf Extends %ZEN.Report.reportPage { Parameter DEFAULTMODE = "pdf"; Parameter XSLTMODE = "server"; /// XML that defines the contents of this report. XData ReportDefinition [ XMLNamespace = " http://www.intersystems.com/zen/report/definition" ] { <report xmlns=" http://www.intersystems.com/zen/report/definition" name='ResultReport' runonce="true"> <call method="GenerateReportXML"/> </report> } /// XSlT stylesheets for both HTML and XSL-FO XData ReportDisplay [ XMLNamespace = " http://www.intersystems.com/zen/report/display" ] { <report xmlns=" http://www.intersystems.com/zen/report/display" name='ResultReport' title='test pdf' style='standard'> <!-- <document width="210mm" height="297mm" marginLeft="10mm" marginRight="10mm" marginTop="5mm" marginBottom="10mm" headerHeight="30mm" referenceOrientation="0"> </document> --> <!-- <pageheader> <focall method="PageHeader"/> </pageheader > --> <body > <focall method="Body"/> </body> </report> } /// тело отчета Method Body(mode) As %GlobalCharacterStream { Set stream=##class(%GlobalCharacterStream).%New() Do stream.WriteLine("<fo:block>hello pdf</fo:block>") quit stream } /// Генерация XML данных отчета /// Нужно, чтобы что-нибудь было, чтобы сформировался PDF-файл Method GenerateReportXML() As %GlobalCharacterStream { Set stream=##class(%GlobalCharacterStream).%New() Do stream.WriteLine("<runTime>"_$ZConvert($ZDT($H,3),"o","XML")_"</runTime>") Quit stream } ClassMethod Run(pPath = "") As %Status { if pPath="" set pPath = $ZU(12)_"Temp\test.pdf" set o=..%New() set rez = o.GenerateReport(pPath,2) quit $$$OK } } ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 12:49 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
Делаю так: Создаю ZEN-Reports устанавливаю Parameter DEFAULTMODE = "xml";/// zui.truck.rep.AccountReport Class zui.truck.rep.AccountReport Extends %ZEN.Report.reportPage { /// Имя приложения, которому принадлежит этот отчет. Parameter APPLICATION = "p6.zen.Application"; /// Это способ отображения по умолчанию для этого отчета. Parameter DEFAULTMODE = "xml"; //toxslfo /// Это опциональная XML область, используемая для отчета. Parameter REPORTXMLNAMESPACE; /// ID счета, для которого делается отчет Property demandId As %Integer(ZENURL = "DemandId"); Property MyOrg As ent.MyOrganization; /// Этот XML блок описывает логическое содержение этого отчета. XData ReportDefinition [ XMLNamespace = " http://www.intersystems.com/zen/report/definition" ] { <report xmlns=" http://www.intersystems.com/zen/report/definition" name="AccountRep" runonce="true" > <attribute name='runTime' expression='$ZDT($H,3)' /> <attribute name='runBy' expression='$UserName' /> <element name='Aka' expression='..MyOrg.Aka'/> <element name='Address' expression='..MyOrg.Address'/> <element name='MailAddress' expression='..MyOrg.MailAddress'/> <element name='INN' expression='"ИНН: "_..MyOrg.INN'/> <element name='KPP' expression='"КПП: "_..MyOrg.KPP'/> <element name='Account' expression='..MyOrg.Account'/> <element name='BankAka' expression='..MyOrg.Bank.Aka'/> <element name='Bik' expression='..MyOrg.Bank.Bik'/> <element name='CorAccount' expression='..MyOrg.Bank.CorAccount'/> <element name='AccountNo' expression='##class(truck.Pay).GetAccountNoByDemandId(..demandId)' /> <element name='AccountDocDate' expression='##class(p6.Date).LogicalToDisplay(##class(truck.Demand).%OpenId(..demandId).DocDate)'/> <group name="acc" sql="SELECT Pay->DocNo,Pay->DocDate,Pay->RubSumTotal, Demand->Items, Pay->Payer->Aka As PayerAka from truck.DemandToPay WHERE Demand->ID=?"> <parameter expression='..demandId'/> <element name='PayerAka' field='PayerAka'/> <element name='DocNo' field='DocNo'/> <element name='DocDate' field='DocDate'/> <element name='Items' field='Items'/> <element name='Summa1' field='RubSumTotal' /> <element name='Summa2' field='RubSumTotal' expression='..WriteSumma(%val)'/> <group name="accLine" sql="select OrderNo,Aka,Unit,Qty,Price,RubSum from truck.PayLine where Pay in (select Pay from truck.DemandToPay WHERE Demand->ID=?)"> <parameter expression='..demandId'/> <element name='OrderNo' field='OrderNo'/> <element name='Aka' field='Aka'/> <element name='Unit' field='Unit'/> <element name='Qty' field='Qty'/> <element name='Price' field='Price' expression='##class(p6.UrlUtils).ConvertCurrency(%val)'/> <element name='RubSum' field='RubSum' expression='##class(p6.UrlUtils).ConvertCurrency(%val)'/> </group> </group> </report> } }Далее рисую отчет в любом визуальном xslt редакторе пользуюсь этим http://www.stylusstudio.com/videos/tutorial1/tutorial1.html но в интернете вроде попадались и бесплатные редакторы Подставляю туда полученный выше файл XML как источник данных По окончанию копирую от туда полученный XSLT код. И копирую его в XData ReportDisplay/// Этот XML блок описывает отображение этого отчета. /// Это используется для создания XSLT стиля, как для HTML, так и для XSL-FO. XData ReportDisplay [ XMLNamespace = " http://www.intersystems.com/zen/report/display" ] { <report xmlns=" http://www.intersystems.com/zen/report/display" name="AccountRep" title ="Счет" > <write> <![CDATA[ <fo:flow flow-name="xsl-region-body"> <fo:block> <fo:block> <fo:block font-size="14pt" font-weight="bold" text-decoration="underline"> <fo:block> <fo:inline font-weight="bold" text-decoration="normal"> <<<<< ВЫРЕЗАНО >>>>>>>>>>>> </fo:block> </fo:block> </fo:flow> ]]> </write> </report> }устанавливаю Parameter DEFAULTMODE = "pdf"; Описание краткое... если что будет не получаться - пишите... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 13:08 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
2acid, Спасибо большое. На call ругается. Наверное нужно сначала все дела с репортами настроить согласно доке? Или что-то еще? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2014, 13:16 |
|
Как cформировать PDF ?
|
|||
---|---|---|---|
#18+
автор2acid, Спасибо большое. На call ругается. Наверное нужно сначала все дела с репортами настроить согласно доке? Или что-то еще? Совсем забыл, что нужно расширять системный класс репорта, что не совсем правильно и этот вариант лучше не использовать. Сейчас бы наверное делал как писал 13-й Пилигрим : xslt --> fop --> pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2014, 09:48 |
|
|
start [/forum/topic.php?fid=39&tid=1556826]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 278ms |
total: | 407ms |
0 / 0 |