Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Передача изображений в doc файл c++

Передача изображений в doc файл c++

Ответ
Поиск в этой теме
Непрочитано 14.03.2017, 15:24 #1
Передача изображений в doc файл c++
Peppersley
 
Регистрация: 26.03.2010
Сообщений: 6

Здравствуйте форумчане,

возникла необходимость дополнить протокол прочностного расчета и, сохраняемый в файл с расширением doc, поясняющими изображениями. Сталкивался ли уже кто-нибудь с таким вопросом?

Рассмотрю любые предложения и рекомендации.
Спасибо.
Просмотров: 11210
 
Непрочитано 14.03.2017, 15:55
1 | #2
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Я бы рекомендовал уйти от doc в сторону docx, а уж статей как парсить docx и формировать отчет масса и для любого языка.
Boxa на форуме  
 
Непрочитано 14.03.2017, 15:55
1 | #3
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
с расширением doc
зачем???
trir на форуме  
 
Автор темы   Непрочитано 14.03.2017, 16:14
#4
Peppersley


 
Регистрация: 26.03.2010
Сообщений: 6


Цитата:
Сообщение от trir Посмотреть сообщение
зачем???
doc здесь не ключевое слово, можно и в pdf или вообще куда угодно, лишь бы потом можно было открыть/прочитать/распечатать.


Цитата:
Сообщение от Boxa Посмотреть сообщение
docx

docx этож просто современный вариант doc или нет? попробую короч.
Peppersley вне форума  
 
Непрочитано 14.03.2017, 16:17
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


docx это zip-архив, картинки там лежат как файлы. Так как это открытый формат, есть уже куча библиотек для работы с ним
trir на форуме  
 
Непрочитано 15.03.2017, 00:04
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


А чего не в html? Это если "по-простому, по рабоче-крестьянски"? Открывается всегда и везде, распечатка особых проблем обычно тоже не вызывает.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.03.2017, 06:28
#7
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


В любой современной среде программирования есть различные компоненты-библиотеки экспорта/импорта, а также составления различных Отчетов - с текстами, иллюстрациями, таблицами, диаграммами. Вот ими надо и пользоваться. Лично я всегда использую FastReport, но есть и много других вариантов. А уже из просмотрщика Отчета можно и экспортировать куда угодно и распечатать.

Что касается именно DOC (да хоть DOCX), то просто так туда не напишешь. Но можно вставить в свою программу ActiveX самого Word и "писать" в неё. Это убого и неэтично. Никто не обязан иметь у себя Word из-за того, что программист неумеха.

Ну и самый простой путь, как написал Кулик Алексей aka kpblc - html. Но его тоже надо знать, хотя бы самые простые теги и будет преодолеваемая проблема с иллюстрациями. Их ведь тоже надо как-то получить и записать куда надо.

Для примера прилагаю один из отчетов - там и иллюстрации и сгенерированные программой графики.
Вложения
Тип файла: pdf test.pdf (232.6 Кб, 149 просмотров)
ShaggyDoc вне форума  
 
Непрочитано 15.03.2017, 07:16
#8
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Что касается именно DOC (да хоть DOCX), то просто так туда не напишешь. Но можно вставить в свою программу ActiveX самого Word и "писать" в неё. Это убого и неэтично. Никто не обязан иметь у себя Word из-за того, что программист неумеха.
Вы не правы. Работать с doc действительно сложновато, а вот с docx нет, это просто zip архив состоящий из xml файлов и картинок, сформировать его можно средствами любого языка без всяких посторонних библиотек и программ, а вот FastReport еще и купить надо (от 13т.р.)

Самый простой способ, это сформировать файл отчета docx, и использовать его как темплейт и при выводе просто внутри архива (docx) заменять текст и картинки на нужные.
Boxa на форуме  
 
Непрочитано 15.03.2017, 07:40
#9
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


http://docxfactory.com/
https://github.com/DocxFactory/DocxFactory
trir на форуме  
 
Непрочитано 15.03.2017, 07:49
#10
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Попробуй Google API, правда придется javascript изучить, но за то вообще на любой машине можно будет запустить.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 15.03.2017, 08:08
#11
hentan


 
Регистрация: 22.01.2013
Сообщений: 1,262
Отправить сообщение для hentan с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А чего не в html? Это если "по-простому, по рабоче-крестьянски"? Открывается всегда и везде, распечатка особых проблем обычно тоже не вызывает.
Поддерживаю, самый простой вариант вывода для расчетов
__________________
"Тщательное планирование – ключ к безопасному и быстрому путешествию."
Одиссей (с)
hentan вне форума  
 
Непрочитано 15.03.2017, 14:29
#12
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Boxa Посмотреть сообщение
Вы не правы. Работать с doc действительно сложновато, а вот с docx нет, это просто zip архив состоящий из xml файлов и картинок, сформировать его можно средствами любого языка без всяких посторонних библиотек и программ, а вот FastReport еще и купить надо (от 13т.р.)
А сколько своего "бесплатного" времени надо затратить, чтобы вручную написать XML? Причем правильный, валидный. Причем не один XML, а вот такую кучку (в каждом DOCX) - зная что и зачем:
Цитата:
\[Content_Types].xml
\_rels\.rels
\customXml\_rels\item1.xml.rels
\customXml\item1.xml
\customXml\itemProps1.xml
\docProps\app.xml
\docProps\core.xml
\word\_rels\document.xml.rels
\word\document.xml
\word\fontTable.xml
\word\numbering.xml
\word\settings.xml
\word\styles.xml
\word\theme\theme1.xml
\word\webSettings.xml
А зиповать тоже побайтово будете? Или сначала кучу навалить, а потом внешним архиватором?

В программировании надо применять готовые библиотеки и компоненты. На их разработку тысячи часов потрачены. Иногда думаешь - да мне самому проще написать, а посмотришь, как реализовано в библиотеке, со знанием каких нюансов - понимаешь, сколько бы зря времени потратил.

Ну и почти на всё имеются и бесплатные варианты чего угодно.
ShaggyDoc вне форума  
 
Непрочитано 15.03.2017, 15:27
| 1 #13
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А сколько своего "бесплатного" времени надо затратить, чтобы вручную написать XML?
А сколько нужно потратить своего "бесплатного времени" для возможности купить эту библиотеку?
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Причем правильный, валидный. Причем не один XML, а вот такую кучку (в каждом DOCX) - зная что и зачем
Ну если с нуля делать, то сложно, а если сначала подготовить шаблон в самом Word, то изменять придется только один файл \word\document.xml, там даже структуру xml парсить не нужно, тупая замена текста.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
А зиповать тоже побайтово будете? Или сначала кучу навалить, а потом внешним архиватором?
System.IO.Packaging.ZipPackage.Open(zipPath, IO.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite), все уже сделано до нас.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
В программировании надо применять готовые библиотеки и компоненты. На их разработку тысячи часов потрачены. Иногда думаешь - да мне самому проще написать, а посмотришь, как реализовано в библиотеке, со знанием каких нюансов - понимаешь, сколько бы зря времени потратил.
Угу и таскают десятки мегабайт из-за одной функции, хотя можно подумать и найти другой подход.
Boxa на форуме  
 
Непрочитано 15.03.2017, 15:35
#14
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
В программировании надо применять готовые библиотеки и компоненты. На их разработку тысячи часов потрачены. Иногда думаешь - да мне самому проще написать, а посмотришь, как реализовано в библиотеке, со знанием каких нюансов - понимаешь, сколько бы зря времени потратил.
Цитата:
Угу и таскают десятки мегабайт из-за одной функции, хотя можно подумать и найти другой подход.
ага
trir на форуме  
 
Непрочитано 15.03.2017, 16:40
#15
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Boxa Посмотреть сообщение
А сколько нужно потратить своего "бесплатного времени" для возможности купить эту библиотеку?
О да, 13 тыс - это бешеные деньги. Но даже если на эти 13 тыс. надо год пахать, они все равно окупаются, потому что тогда сможешь быстро делать качественные программы.

Цитата:
Сообщение от Boxa Посмотреть сообщение
Ну если с нуля делать, то сложно, а если сначала подготовить шаблон в самом Word, то изменять придется только один файл \word\document.xml, там даже структуру xml парсить не нужно, тупая замена текста.
Это объяснение, как каменным топором свалить дерево. Потому что пользоваться пилой религия не позволяет.

Цитата:
Сообщение от Boxa Посмотреть сообщение
Угу и таскают десятки мегабайт из-за одной функции, хотя можно подумать и найти другой подход.
Ага, "из-за одной функции". Видимо и представления не имеет о современных библиотеках. Как они организованы. "Десятки мегабайт" лежат на диске, а в программу прилинковывается только то, что используется. Ну а когда для вшивенькой программулечки вю исполняемую среду .NET или Java надо тащить, это не смущает?

Вот это
Цитата:
System.IO.Packaging.ZipPackage.Open(zipPath, IO.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite), все уже сделано до нас.
оно что, в самом "языке" предусмотрено? Тогда уж замените и это самопальными строчками.

Да что я убеждаю - "Пилите Шура, пилите".
ShaggyDoc вне форума  
 
Непрочитано 15.03.2017, 16:57
#16
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,002


Цитата:
Сообщение от Peppersley Посмотреть сообщение
возникла необходимость дополнить протокол прочностного расчета и, сохраняемый в файл с расширением doc, поясняющими изображениями
Для начала, из какой программы сохраняется в *.doc? Это готовая программа или самописка?
И поясняющие рисунки статичные или там данные присутствуют из расчетов?
Сергей812 вне форума  
 
Непрочитано 15.03.2017, 17:03
#17
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
О да, 13 тыс - это бешеные деньги. Но даже если на эти 13 тыс. надо год пахать, они все равно окупаются, потому что тогда сможешь быстро делать качественные программы.
И как скоро оно окупиться, особенно при учете написания программы для себя или в единичном экземпляре? Как отвечать за качество программы, если библиотека сторонняя, по сути черный ящик и в системе потребителя работает не корректно?
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Это объяснение, как каменным топором свалить дерево. Потому что пользоваться пилой религия не позволяет.
Ну раз уж аналогии, то Ваше предложение - ремонт обуви кувалдой, т.к. это самый тяжелый молоток, а значит самый лучший.
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Ну а когда для вшивенькой программулечки вю исполняемую среду .NET или Java надо тащить, это не смущает?
не смущает, т.к. эти фрейворки УЖЕ есть у потребителя и их тащат такие программы как Автокад и подобные или они уже есть в установленной ОС (win 10 - .net 4.6 уже из коробки)
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
оно что, в самом "языке" предусмотрено? Тогда уж замените и это самопальными строчками.
Это предусмотрено в том фреймворке с которым работает офис, автокад и который есть в системе пользователя и являлось ответом на ПОБАЙТНОЕ сжатие или использование ВНЕШНЕГО архиватора, т.е. иллюстрирует , что это можно выполнить не побайтно и не внешним архиватором.

потерял из виду предмет для спора, решения для ТС озвучены, формат и форму отчета ТС не показывает. Выбор решения за ТС.
Boxa на форуме  
 
Непрочитано 15.03.2017, 17:55
#18
CalcProg


 
Регистрация: 02.10.2016
Сообщений: 205


для этого есть технология com и ole погугли
CalcProg вне форума  
 
Автор темы   Непрочитано 29.08.2017, 12:41
#19
Peppersley


 
Регистрация: 26.03.2010
Сообщений: 6


Всем спасибо,
тестил docxfactory - не пошел. Причина мне неизвестна, файл компилируется но не выполняется, пользуюсь netbeans с cygwin.
Нашел решение в создании html файла.
+ никакой возни с библиотеками
+ возможность дополнительного редактирования текста, размера и нумерация страницы
+ картинки
- никаких
Peppersley вне форума  
 
Непрочитано 29.08.2017, 13:44
#20
ProjectMaster


 
Регистрация: 21.08.2017
Сообщений: 1,054


Цитата:
Сообщение от hentan Посмотреть сообщение
Поддерживаю, самый простой вариант вывода для расчетов
Самый неудобный для конечного юзера. Для печати должен быть сформирован документ на формате (А4, А3 и т.д.)
ProjectMaster вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Передача изображений в doc файл c++

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите уменьшить размер файла DWG AndroiD AutoCAD 2367 16.03.2024 08:40
Изменение единиц измерения текстур (изображений) материалов в AutoCAD 2015 Julia-94 AutoCAD 5 03.12.2018 13:31
Autolisp Как в текстовый файл записать переменную в кавычках mikls LISP 8 06.12.2013 20:31
"Файл рисунка испорчен" - не та версия Акад или реально нерабочий файл? Ернат Разное 3 17.06.2009 09:56
непонятный "битый" файл gvs AutoCAD 6 22.02.2007 23:09