Pull to refresh
  • by relevance
  • by date
  • by rating

(Office) Open XML

Lumber room
Microsoft продвигает свой открытый формат на ISO стандарт, любители opensource беснуются.

Не знаю, может жизнь с ODF могла бы реально быть менее проблемной, но даже если примут в качестве стандарта OOXML, то это тоже будет позитивно. По крайней мере, работать с им гораздо легче, чем с бинарным doc(который, был стандартом де-факто и без стандартизации ISO)
Total votes 2: ↑1 and ↓1 0
Views 713
Comments 9

Как утянуть картинку из MS Word

Lumber room
Заказчики иногда присылают фотки и описания своих товаров для дизайн-макета в вордовском файле. Здесь я опишу как безболезненно импортировать растровые картинки из Word в Photoshop.

Читать дальше →
Total votes 77: ↑59 and ↓18 +41
Views 254
Comments 27

Текст любой ценой: DOCX и ODT

PHP *
Недавно возникла задача получения чистого текста из различных форматов документооборота — будь-то документы Microsoft Word или PDF. Задача была выполнена даже с чуть более широким списком возможных входных данных. Итак, этой статьёй я открываю список публикаций о чтении текста из следующих типов файлов: DOC, DOCX, RTF, ODT и PDF — с помощью PHP без использования сторонних утилит.

Читать дальше →
Total votes 113: ↑98 and ↓15 +83
Views 59K
Comments 60

Свое представление (view) в Spring MVC

Java *
Если вы работали с Spring MVC то наверняка обращали внимание, что он поддерживает множество различных представлений (view), которые позволяют генерировать pdf, excel, csv использовать jstl, freemarker, velocity и jasperReports. Но что делать если вам потребовалось заполнить какой либо документ в формате docx по шаблону и передать его пользователю? С одной стороны можно в методе воспользоваться доступом к стандартному response и если планируется использовать такую генерацию множество раз, то вынести ее в отдельный класс. Но такое решение не слишком изящно и нарушает MVC-паттерн.
Что можно сделать чтобы этого не происходило?
Total votes 20: ↑19 and ↓1 +18
Views 14K
Comments 20

Генерируем OfficeOpenXML-документы за 5 минут

.NET *
Часто надо бывает из приложения на ASP.NET сгенерировать отчёт на сервере в OpenXML-формате.

Есть несколько привычных способов сделать это:
  1. «Нашёл, слинковал, заюзал» – идём в Гугл, ищем библиотеку для генерации docx или xlsx, подключаем, разбираемся, генерируем. Это привычно, но долго.
  2. «Фу» – использовать COM. Это не рекомендуется, требует установленного Microsoft Office на сервере, не очень thread-safe, с x64 не дружит и вообще старомодно.
  3. «Ъ» – разобраться с форматом, собрать из XML и зазипать. Брутально.
  4. «Microsoft way» – об этом способе рассказывается под катом.

Читать дальше →
Total votes 71: ↑63 and ↓8 +55
Views 66K
Comments 31

Поиск по PDF, DOC, DOCX файлам с помощью Sphinx и PHP

Sphinx *
Sandbox
Доброе время суток.

Хочу поделиться своим опытом написания скрипта на PHP для поиска по файлам форматов PDF, DOC и DOCX, используя Sphinx. Все ниже изложенное написано для людей, которые уже имели опыт работы с связкой Sphinx и PHP. Если нет, то в свое время мне очень помогла статья Мартина Стрейчера «Создание собственной поисковой системы с помощью PHP», опубликованная на сайте IBM.

Совсем недавно на одном из проектов, который является веб-интерфейсом для базы пользователей, я получил задание организовать поиск по документам. Проект был написан до меня и уже использовал Sphinx.

Задача вроде тривиальная, но погуглив немного, я не смог найти внятную инструкцию с конкретным примером поиска по файлам форматов PDF, DOC и DOCX, что и стало причиной написания этой статьи.
Читать дальше →
Total votes 65: ↑62 and ↓3 +59
Views 25K
Comments 4

Честная генерация DOCX на PHP. Часть 1

PHP *
Sandbox
image Здравствуйте, уважаемое хабрасообщество! Как-то раз был на хабре интересный материал про генерацию doc-файлов средствами PHP. К сожалению, больше на хабре ничего на эту тему я не нашел. На тот момент я разработал собственное решение.
Оно состояло в том, чтобы генерировать .docx файлы. Аргументы были следующие:

  • На дворе 2012 год, а этот формат появился аж в 2007-м
  • Генерить .docx несомненно проще, чем .doc, поскольку .docx = .zip, а .doc — бинарный файл
  • Костыль с генерацией HTML и переименованием в doc не подойдет для более-менее уважающих себя проектов
  • С помощью приведенного ниже метода мы с легкостью сгенерируем Excel, и вообще всё что угодно.

Подробности под катом.
Читать дальше →
Total votes 73: ↑61 and ↓12 +49
Views 66K
Comments 19

Честная генерация DOCX файлов на PHP. Часть 2

PHP *
image Здравствуйте, уважаемое хабрасообщество!
Продолжаем историю про генерацию DOCX средствами PHP.

Что нас ждет сегодня:
  • Мы узнаем, как вставлять изображения в документ;
  • Просветимся на счет English Metric Units;
  • Сделаем задел на будущую генерацию Exel.

Тем, кто не в курсе, рекомендуется прочитать первую часть. Ну а кто в теме – прошу под кат
Читать дальше →
Total votes 39: ↑36 and ↓3 +33
Views 27K
Comments 19

Шаблоны *.docx с использованием скриптлетов Groovy

Website development *Programming *Groovy & Grails *
image

В одном из своих проектов мне понадобилось автоматизированно формировать документы договоров для клиентов. Договор представляет собой юридический документ длиной около 10 страниц и является шаблоном: в нужных местах подставляются данные конкретного клиента.

Задача


Первичные требования были такими:
В сложном стилизованном документе doc или docx вывести нужную информацию в помеченных местах.

В дальнейшем они были уточнены и расширены:
  • В сложном стилизованном документе docx вывести данные в помеченных местах.
  • Разметка вывода данных должна быть похожа на скриптлеты: ${}, <%%>, <%=%>.
  • Данными для вывода могут быть объект. Нужна возможность обращения к полям.
  • Для вывода использовать один из скриптовых языков: Groovy, JavaScript.
  • Нужно иметь возможность выводить списки объектов в таблицы, в каждой ячейке отображая поля.


Имеющиеся решения


Оказалось, что имеющиеся в области продукты (я говорю про платформу Java), не решают поставленную задачу. Ниже краткий обзор продуктов:

Jasper reports

В качестве шаблона использует файл xml-разметки *.jrxml. Файл разметки документа + данные (как из БД, так и Map параметров) отдаются процессору, который формирует любой из следующих форматов: PDF, XML, HTML, CSV, XLS, RTF, TXT.
Не устроило:
  • Это не WYSIWYG, даже при наличии iReport — визуального средства формирования jrxml-файлов.
  • Надо хорошо изучить JasperReports API, чтобы создать и стилизовать сложный шаблон.
  • Не выводит в нужном формате. Можно и PDF, но хотелось бы иметь возможность потом поредактировать выходной документ.
Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views 11K
Comments 10

Картинки в doc-файле: снижение веса хирургическим путём

Software
Tutorial
Жил-был на свете один перевод (как процесс, а не как результат). Существовал он таким образом: из pdf-ки с оригинальным текстом вырезались кусочки, вставлялись прямо в Word и снизу посредством значительных мысленных усилий появлялся русский текст, и, как правило, пара-другая сносок. А если в оригинале были сноски, то в сносках тоже появлялись картинки. Перевод шёл, и файл разрастался — в 16-страничном файле было 51 изображение, и Word стал работать так медленно, что перевод никак не мог стать результатом.
Встроенная функция компрессии изображений почему-то совсем не помогала, поэтому было решено произвести вмешательство хирургическим путём.
Читать дальше →
Total votes 35: ↑29 and ↓6 +23
Views 25K
Comments 39

Как сделать онлайн просмотр документов

LLC Tik-Tok Coach corporate blog Website development *
Tutorial
Первый рабочий день. Первая задача в Redmine. Первая спецификация в формате doc. На новой рабочей машине. К чтению спецификации удалось приступить часа через 3. Пока скачался и установился MS Office. Вспоминая этот случай, я был уверен, что в нашей системе управления задачами надо сделать онлайн просмотр документов. Вот только идей по реализации за разумное время и трудозатраты не было. Недавно мы нашли способ – Microsoft Office Web Apps.

В этой статье пойдет речь о том, как добавить онлайн просмотр документов в любой продукт.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Views 47K
Comments 36

PHPStamp — честная генерация DOCX документов из шаблона

Website development *PHP *XSLT *
Sandbox
Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

Задача состояла именно в генерации шаблона для многократного использования, который не придется править вручную или прибегать к сторонним программам для его доработки.
Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Views 25K
Comments 15

TemplateEngine.Docx — OpenSource .NET шаблонизатор docx документов

Open source *.NET *C# *


В разработке корпоративных приложений очень часто приходится решать задачу выгрузки данных в документы — от небольших справок до больших отчетов.

Хочу поделиться нашим opensource-решением для генерации docx документов, которое позволяет заполнять документы по шаблону, оформление которого можно менять в Word без переписывания кода.

Для начала — немного вводных.

Что нам было нужно от шаблонизатора


  • Шаблон создается в Word и сразу видно, на что будет похож результирующий документ, шаблон без лишнего мусора.
  • Результирующий документ после скачивания содержит все необходимые данные, не подтягивая их с внешних источников.
  • Возможность заполнять списки, таблицы, и иногда еще и таблицы с вложенными в них списками.
  • Шаблон можно доверить секретарю клиента, чтобы он мог сменить логотип, реквизиты компании, или как-либо еще подкорректировать оформление. И все это уже после сдачи проекта, не модифицируя наш код.
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views 39K
Comments 21

Парсер OOXML (docx, xlsx, pptx) на Ruby: наши ошибки и находки

ONLYOFFICE corporate blog Open source *Ruby *XML *Web services testing *
Мы выложили парсер OOXML форматов на Ruby в open-source. Он доступен на GitHub'е и RubyGems.org, бесплатен и распространяется под лицензией AGPLv3. Всё как у модненьких Ruby-разработчиков.


Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Views 7.6K
Comments 6

Генерация документов в doc, excel, pdf и других форматах на сервере

PHP *Programming *
Выгрузка отчетов в различных форматах — типовая задача для многих проектов. И сейчас есть немало инструментов для этого. Среди них есть интересный вариант, который применяется, как мне кажется, не часто, но он однозначно стоит внимания. Потому что позволяет получить документ в нужном формате буквально одной командой. О нем и расскажу.

image

Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Views 37K
Comments 20

Как я разбирал docx с помощью XSLT

InterSystems corporate blog Abnormal programming *Programming *XML *XSLT *
Tutorial

Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.

Читать дальше →
Total votes 45: ↑44 and ↓1 +43
Views 42K
Comments 15

Увеличиваем себе премию в два раза, или как взломать документы, подписанные усиленной квалифицированной подписью

АСКОН corporate blog Information Security *PDF CAD/CAM *ECM *

На волне новостей чип-апокалипсиса 2018 года, когда взломано почти всё, а сайты мировых брендов, сами того не подозревая, майнят в наших браузерах криптовалюту, мы решили покуситься на святая святых и взломать документы, подписанные усиленной квалифицированной электронной подписью. И вот что из этого вышло.


Читать дальше →
Total votes 76: ↑75 and ↓1 +74
Views 48K
Comments 63

Документируем процесс подключения и генерации документов в будущей ERP-системе

System Analysis and Design *Interfaces *Product Management *
Sandbox
image

Несколько месяцев назад я закончил один из этапов своего профессионального пути многорукого Шивы в стартапе по разработке системы управления лабораториями неразрушающего контроля. Я расскажу как мне удалось задокументировать часть разработки связанную с подключением и генерацией документов в достаточном объеме для дальнейшего спокойного использования созданной системы в течении двух лет.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 2.7K
Comments 0

Конвертация текстовых документов в xml на С#

.NET *C# *
Sandbox
Tutorial

Недавно мне пришлось столкнуться с необходимостью достать текст из офисных документов (docx, xlsx, rtf, doc, xls, odt и ods). Задача осложнялась требованием представить текст в формате xml без мусора с максимально удобной для дальнейшего парсинга структурой.


Решение использовать Interop сразу отпало по причине его громоздкости, во многом избыточности, а также необходимости устанавливать на сервер MS Office. В результате, решение было найдено и воплощено на внутреннем проекте. Однако, поиск оказался настолько сложен и не тривиален в силу отсутствия каких-либо общедоступных мануалов, что мной было принято решение написать в свободное от работы время библиотеку, которая решала бы указанную задачу, а также создать написать что-то вроде инструкции, чтобы разработчики прочитав ее смогли, хотя бы поверхностно, разобраться в вопросе.


Прежде, чем перейти к описанию найденного решения, предлагаю ознакомиться с некоторыми выводами, которые были сделаны в результате моих изысканий:


  1. Для платформы .Net не существует какого-либо готового решения для работы со всеми перечисленными форматами, что заставит нас местами кастылизовывать наш солюшн.
  2. Не пытайтесь в сети найти хороший мануал по работе с Microsoft OpenXML: чтобы разобраться с этой библиотекой придется изрядно покрасноглазить, покурить StackOverflow и поиграться с отладчиком.
  3. Да, мне все таки, удалось приручить дракона.

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


Работа с xlsx и docx

Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 11K
Comments 32

Генерация файлов Word в Apache POI

Java *Apache *
Для языка Java (как, впрочем, и для любого другого языка программирования) всё еще не придумали более простого и действенного способа генерации документов docx, чем библиотека Apache POI. В конце нулевых появился сей высокоуровнеый API, позволящий говорить с формируемым документом не на языке разметки XML, а с помощью удобных полей и выводов.

Судя по моим Google-запросам на протяжении более чем года сообщество пользователей этой библиотеки продержалось года этак до 2012, в то время как новые версии библиотеки всё еще появляются на главной странице проекта. Не на все вопросы, касающиеся формирования самого примитивного документа, есть ответы в документации или stackoverflow, не говоря уже о текстах на русском языке. Постараемся компенсировать этот недостаток данных для тех, кому это может понадобиться.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views 7.2K
Comments 3
1