|
|
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
в общем, тема такая я уж не знаю как лучше сделать. всё думку думаю. заказчик хочет при отпуске товара чтоб генерировалось три документа: счет-фактура, спецификация, акт-сверки. и типа чтоб нажал кнопку принт и оно опс улетало на принтер одной кнопкой. так же в добавок четвертый документ - сертификаты к товару. (ранее отсканированные и загруженные в базу с привязкой к наименованию, так же склеенные в один большой пдфник) приложение веб. сейчас сделал тупо так: формируется хтмлка-жсп-жстл (во вьюшку отправляются объекты инвойс и акт сверки, а там уже разбирается жстлом) с тремя документами, разрывами страниц и т.п. потом джейскрипт просто вызывает окно принт в хроме и всё улетает на принтер - работает отлично, работает шикарно воще без вопросов. 1 клик и документ на бумаге. проблемы начинаются позже: контора фарм и по их заверениям может быть и 200 позиций в инвойсе. а это означает, что инвойс может быть и на 2 страницы и на 3 страницы. т.е. надо разрыв втыкать посреди траблицы, далее втыкать заголовок и опять в какой то момент разрыв и снова заголовок и потом "нижняя" шапка (принял отпустил директор и т.п.). но тут вылезает новая проблема. название позиции это может быть и 3 слова а может быть и 15 слов (нормально да?) т.е. "презервативы дюрекс ребристые синего цвета пр-ва словения номер 3" )) и вылезает вот что: что одна позиция может быть на 2 строки (в инвойсе) может быть на 3 строки и даже на пять! чтоб подсчитать когда втыкать разрыв мне надо пересчитвать количество строк в каждой позиции и потом их суммировать (зная сколько их всего влезает). и здесь опять проблема! они видите ли хотят "как в 1с" чтоб был шрифт ариал (который не моноширинный ) )) и посчитать точно количество строк в некоторых случаях возникает ошибка на 1 строку, т.к. символов в строку влезает разное количество. и следом лезет еще одна проблема ))) перенос слов (гипенация). т.е. три длинных слова два слова в одну строку третье на новую и снова ошибка в расчете строк на страницу )) короче, великий геморрой. я сделал расчет всего этого гвона чисто на жстл тегах. вроде работает. но в теории может так выйти что разрыв будет вставлен не верно и получится порнуха при распечатке. шанс очень малый но он есть. вариант выхода вижу один: сделать просто запасик снизу на 1-2 позиции (будет пустое место, но зато шанс вставить разрыв страницы не туда сводится практически к нулю). либо другой вариант: хаергу всю эту вообще выкинуть нафиг и использовать старый добрый ексель. но у екселя проблемы. заголовок на страницу он вставляет только один вариант. в итоге мне придется генерировать документ с тремя вкладками внутри. и надо будет опять думать как это всё напечатать одним нажатием. что тоже навряд ли выйдет т.к. надо будет процентовкой подгонять размер чтоб в размер страницы попало. - для оператора геморрой. собссно вопрос - я вообще стратегию верно выбрал? -- генерировать хтмл а потом из него в пдф перегонять. или есть что-то более простое? я смотрел айтекст, которрый сразу пдф генерит. но это жпоа полнейшая и вообще отдельная дисциплина чтоб разобраться с его псевдоязыком разметки.. в общем, не вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 10:52 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
lor2в общем, тема такая я уж не знаю как лучше сделать. всё думку думаю. заказчик хочет при отпуске товара чтоб генерировалось три документа: счет-фактура, спецификация, акт-сверки. и типа чтоб нажал кнопку принт и оно опс улетало на принтер одной кнопкой. так же в добавок четвертый документ - сертификаты к товару. (ранее отсканированные и загруженные в базу с привязкой к наименованию, так же склеенные в один большой пдфник) приложение веб. сейчас сделал тупо так: формируется хтмлка-жсп-жстл (во вьюшку отправляются объекты инвойс и акт сверки, а там уже разбирается жстлом) с тремя документами, разрывами страниц и т.п. потом джейскрипт просто вызывает окно принт в хроме и всё улетает на принтер - работает отлично, работает шикарно воще без вопросов. 1 клик и документ на бумаге. проблемы начинаются позже: контора фарм и по их заверениям может быть и 200 позиций в инвойсе. а это означает, что инвойс может быть и на 2 страницы и на 3 страницы. т.е. надо разрыв втыкать посреди траблицы, далее втыкать заголовок и опять в какой то момент разрыв и снова заголовок и потом "нижняя" шапка (принял отпустил директор и т.п.). но тут вылезает новая проблема. название позиции это может быть и 3 слова а может быть и 15 слов (нормально да?) т.е. "презервативы дюрекс ребристые синего цвета пр-ва словения номер 3" )) и вылезает вот что: что одна позиция может быть на 2 строки (в инвойсе) может быть на 3 строки и даже на пять! чтоб подсчитать когда втыкать разрыв мне надо пересчитвать количество строк в каждой позиции и потом их суммировать (зная сколько их всего влезает). и здесь опять проблема! они видите ли хотят "как в 1с" чтоб был шрифт ариал (который не моноширинный ) )) и посчитать точно количество строк в некоторых случаях возникает ошибка на 1 строку, т.к. символов в строку влезает разное количество. и следом лезет еще одна проблема ))) перенос слов (гипенация). т.е. три длинных слова два слова в одну строку третье на новую и снова ошибка в расчете строк на страницу )) короче, великий геморрой. я сделал расчет всего этого гвона чисто на жстл тегах. вроде работает. но в теории может так выйти что разрыв будет вставлен не верно и получится порнуха при распечатке. шанс очень малый но он есть. вариант выхода вижу один: сделать просто запасик снизу на 1-2 позиции (будет пустое место, но зато шанс вставить разрыв страницы не туда сводится практически к нулю). либо другой вариант: хаергу всю эту вообще выкинуть нафиг и использовать старый добрый ексель. но у екселя проблемы. заголовок на страницу он вставляет только один вариант. в итоге мне придется генерировать документ с тремя вкладками внутри. и надо будет опять думать как это всё напечатать одним нажатием. что тоже навряд ли выйдет т.к. надо будет процентовкой подгонять размер чтоб в размер страницы попало. - для оператора геморрой. собссно вопрос - я вообще стратегию верно выбрал? -- генерировать хтмл а потом из него в пдф перегонять. или есть что-то более простое? я смотрел айтекст, которрый сразу пдф генерит. но это жпоа полнейшая и вообще отдельная дисциплина чтоб разобраться с его псевдоязыком разметки.. в общем, не вариант. Около 5 лет назад всё это делал через iText так что как-то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2016, 11:16 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
в айтексте сверстать адекватной сложности документ это застрелиться проще. ..что больше никто не сталкивался с таким или все в айтексте пишут? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 10:47 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
lor2, для рэпорта и JasperReports тоже подойдет, пробовал вещь хорошая :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 10:57 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
авторпроблемы начинаются позже: контора фарм и по их заверениям может быть и 200 позиций в инвойсе. а это означает, что инвойс может быть и на 2 страницы и на 3 страницы. т.е. надо разрыв втыкать посреди траблицы, далее втыкать заголовок и опять в какой то момент разрыв и снова заголовок и потом "нижняя" шапка (принял отпустил директор и т.п.). но тут вылезает новая проблема. название позиции это может быть и 3 слова а может быть и 15 слов (нормально да?) т.е. "презервативы дюрекс ребристые синего цвета пр-ва словения номер 3" )) и вылезает вот что: что одна позиция может быть на 2 строки (в инвойсе) может быть на 3 строки и даже на пять! чтоб подсчитать когда втыкать разрыв мне надо пересчитвать количество строк в каждой позиции и потом их суммировать (зная сколько их всего влезает). и здесь опять проблема! они видите ли хотят "как в 1с" чтоб был шрифт ариал (который не моноширинный ) )) и посчитать точно количество строк в некоторых случаях возникает ошибка на 1 строку, т.к. символов в строку влезает разное количество. и следом лезет еще одна проблема ))) перенос слов (гипенация). т.е. три длинных слова два слова в одну строку третье на новую и снова ошибка в расчете строк на страницу )) короче, великий геморрой. я сделал расчет всего этого гвона чисто на жстл тегах. вроде работает. но в теории может так выйти что разрыв будет вставлен не верно и получится порнуха при распечатке. шанс очень малый но он есть. вариант выхода вижу один: сделать просто запасик снизу на 1-2 позиции (будет пустое место, но зато шанс вставить разрыв страницы не туда сводится практически к нулю). делал для excell и calc муторно, но реализуемо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:15 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
я для екселя тоже делал кое-какие документы там же. там где один заголовок на все страницы. а когда заголовки разные - появляются вариации да и пдф как то удобнее для печати. нажал принт и все настройки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:19 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
в экселе есть удобство - можно внести правки, что бывает необходимо :) в пдф это несколько проблематично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 13:04 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
ага. например, каждый раз )) выставлять границы печати да )) да и делать правки в инвойсе как то не комильфо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 14:37 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
lor2ага. например, каждый раз )) выставлять границы печати да )) да и делать правки в инвойсе как то не комильфо границы это не проблема и их править можно и нужно программно а вот правки в счете или накладной - это довольно часто приходилось.... по мелочам,к счастью, но из-за этих мелочей придурошные бухгалтерши клиентов не хотели принимать документы и как уговаривать их ссылками на доки и прочими аргументами - что со стеной бодаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 14:58 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
lor2, XTHM->PDF нормально генерится через Flying Saucer . Вам надо только разобраться с разметкой и правильно её применять - хэдеры, футеры, колонтитулы и пр. Если всё правильно сделать, то принудительные разрывы страниц надо ставить только между разными документами в пакете. Можно сдкелать заготовку (шаблон) и заполнять его данными через какой-нибудь шаблонизатор, например, Apache Velocity или Freemaker . Очень удобно. iText никакго псевдоязыка разметки не имеет, там голый API - создать параграф, создать блок текста, создать таблицу и т.п. Единственное неудобство, что всё кодом, если шаблон документа изменится, то надо править код. Если вас Flying Saucer чем-то не устраивает, посмотрите Apache FOP . Возможностей по разметки текста больше, но "нарисовать" XSL-FO шаблон сложнее, чем XHTML, но это дело привычки. Заполнять данными можно также FO-шаблон через шаблонизатор или через XSL-XML трансформацию (как это правильно называется?) Есть ещё DITA , DocBook и др. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 09:06 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
Jasper report всем хорош. Только не нашел - не отрывать абзац от следующего - повтор заголовков на страницах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 09:14 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
GarrickВам надо только разобраться с разметкой не уверен что для очётов правильнее будет рабираться с разметками. Если конечно, заказчик вменяемый. Не требует заголовки под 45 гард. и т.д.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 10:06 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
lor2там где один заголовок на все страницы. а когда заголовки разные это как понять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 10:07 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
Garrick посмотрите Apache FOP . Возможностей по разметки текста больше, но "нарисовать" XSL-FO шаблон сложнее, чем XHTML, но это дело привычки. + хотя вымогает такой подход "хочу как в 1С", если хотите как в 1С используйте 1С. В том же уз, медикаменты на 1С прекрасно крутятся, дохрена контор. Там все эти хотелки и плюшки есть уже из коробки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 10:21 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
golovonometrхотя вымогает такой подход "хочу как в 1С", если хотите как в 1С используйте 1С. смотря что хотят. - если шрифт, то это вполне разумно. Т.к. никто не поймёт проблемы "с моноширинным". - если в отчёте ячейки редактируются, то это конечно мегасложно и дороже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 10:27 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
через poi сделать можно, только муторно,но зато как в 1с будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 11:08 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
golovonometrGarrick посмотрите Apache FOP . Возможностей по разметки текста больше, но "нарисовать" XSL-FO шаблон сложнее, чем XHTML, но это дело привычки. + хотя вымогает такой подход "хочу как в 1С", если хотите как в 1С используйте 1С. В том же уз, медикаменты на 1С прекрасно крутятся, дохрена контор. Там все эти хотелки и плюшки есть уже из коробки. крутятся (если речь про уз) но вот с кастомизацией некоторые проблемы. а то что я запилил на заказ это по-сути копия какой то древней проги написанной на дельфях, которую я просто тупо с нуля переписал на основе скриншотов и показаний тех, кто на ней работал (по собссно их же заказу), перепилил полностью на веб и на яве, с авторизацией через ад, добавил их хотелки-желалки вот и всё. ну платят и ладно зато она в отличие от 1с может вести и черную и белую кассы )) и кнопочки в тех местах где заказчик хочет и окошечки там где им надо и прочие прикольные фишки. я не соревнуюсь с 1с конечно же, но вот в плане кастомизации я могу сделать свой софт каким угодно, а типовой 1сник - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 21:23 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
вадячерез poi сделать можно, только муторно,но зато как в 1с будет ну вот я и склоняюсь к пои. часть документов я уже на нем сделал чтоб генерилось но там одностраничные и достаточно простые документы, которые они хотели редактировать после генерации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 21:26 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
Petro123lor2там где один заголовок на все страницы. а когда заголовки разные это как понять? пример: прайс надо сделать. там идет какая то "заглавная" страница со всякой инфой. далее идет собссно перечень товаров. таблица с каким то там заголовком навроде "название, срок годности, цена, цена " и т.п. так вот, если у меня скажем, 500 наименований, то на 1 страницу не влезает и переваливается на вторую (речь об экселе). в екселе есть такая опция как "закрепить заголовок" ну или типа того. ты помечаешь часть клеток и в случае если у тебя инфа переползает на следующую страницу - то этот заголовок к таблице переползает туда автоматом. это окей. а теперь вопрос: они хотят чтоб вылезал целый пакет документов: инвойс (там ской заголовок), следом еще какой то табличный документ (спецификация) и третий - акт сверки (снова таблица). в екселе ты не можешь больше одного заголовка на страницу закрепить. всё . приехали. либо вариант номер 2 : делаем внутри одного документа ексель несколько листов и там уже закрепляем заголовки. но мне не хочется с этим связываться потому что оне хотят "одной кнопкой". а если ты начнешь пилить ексель документ на несколько листов, то ты перед печатью вынужден будешь в любом случае каждый лист подгонять под принтер. с шаблонизаторами это круто. но.. по сути я сейчас это и делаю пользуя жсп и конвертируя его в пдф средствами браузера. )способ делать это на сервере легкий я не нашел со стандартным жсп шаблонизатором - надо устраивать костыли с интерцепторами и фильтрами, перехватывать вывод и отправлять его в айтекст. или же подключать велосити и начать изучать уже его. т.к. мои жсп-жстлки на эти документы прям как по мвс получились монстроидальными с кучей вычислений (которые относятся ко вьюшке разумеется) и осваивать всё заново в велосити чот меня пугает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 21:41 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
lor2, тут есть ещё одна тонкость по применению «одной кнопкой» все доки нужно печатать одним «файлом» дабы избежать паузы между печатью . как вариант делать это двойным преобразованием: по отдельности каждый документ в эксель, а потом все загнать в пдф и отправить на печать пдфку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 22:22 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
вадя, я даже боюсь предположить, как в пои ексель в пдф конвертить чтоб там еще и поля выставлялись правильно. даже в екселе удобная функция выравнивания по краям появилась только в десятке )) и тут снова вылезает проблема с заголовками ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 22:39 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
вадяlor2, тут есть ещё одна тонкость по применению «одной кнопкой» все доки нужно печатать одним «файлом» дабы избежать паузы между печатью . как вариант делать это двойным преобразованием: по отдельности каждый документ в эксель, а потом все загнать в пдф и отправить на печать пдфку Если можно то пусть это делают через 1с А можно прииер кода на html js для корректной печати без подтвержения диалогово окна и работы с заголовками и переносами в html странице ? Какие стили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 22:51 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
Как вариант есть решение в книги спринг рецепты Глава Creating Excel and PDF Views 4-11. Но код нужно писать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 22:53 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 22:55 |
|
||
|
Вопрос по генерации документов.
|
|||
|---|---|---|---|
|
#18+
Atum1, не, ну нажать принт и выбрать принтер тебе в любом случае придется из окна браузера (хром в моем случае) - либо на принтер либо в пдф. а разрыв страницы в цссе: Код: html 1. 2. 3. 4. 5. 6. 7. втыкай его в странице куда хочешь и на принтере или пдфе будет пейджбрейк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2016, 23:28 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39217088&tid=2124117]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
23ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 377ms |

| 0 / 0 |
