DOCX в PDF ... с пользовательскими свойствами документа

1558
WernerCD

TLDR : Как я могу преобразовать DOC (X) в PDF и сохранить CustomDocumentProperties и Fields - так, чтобы я мог программно обновлять пользовательские свойства и печатать PDF с помощью службы Windows ?

! TLDR

У нас есть собственное внутреннее приложение, сочетающее создание DOCX с последующим обновлением на месте и печатью. Приложение как оно есть - программа на основе Windows Form - работает, но требует, чтобы оно запускалось из пользовательской оболочки. Я хочу обновить эту программу для запуска из службы Windows.

Проблема с DOCX в службе Windows печатает. На сервере должен быть установлен Word. Word плохо воспроизводится вне пользовательской оболочки - модальные диалоги, пользовательские приглашения (хотите ли вы восстановить один из них? Хотите ли вы редактировать этот документ? И т. Д.), Необходимые записи в реестре и т. Д.

Я изучаю, как настроить наш рабочий процесс в формате PDF на сервере.

Workflow

DOC (X) Подготовка / создание (вручную, не в программе):

  • Импорт / запуск VBScript:
    • Получить столбцы таблицы / представления из базы данных.
    • Каждый столбец входит в CustomProperty.
  • Поместите поля в документ для желаемых пользовательских свойств.

Итак CustomerName, AddressLine1и Cityт. Д. Добавляются как CustomDocumentProperties ... затем поля размещаются в нужных местах формы для автоматической печати в автоматизированной программе.

Использование DOCX (автоматически, в программе):

  • Вытащить строку из той же таблицы
  • Поместите правильные данные в каждый CustomDocumentPropertyField
  • Обновить поля (заменяет CustomerNameна Doe, John, Cityс Whovilleи т. Д.)
  • Распечатать документ на правильный принтер

Желаемые изменения

Я ищу либо

а. Преобразуйте DOC (X) в PDF-файл таким образом, чтобы передача пользовательских свойств, а также возможность замены полей оставались без изменений. Было бы 1) Создать DOCX (многие из них существуют в настоящее время и является текущим рабочим процессом), 2) Преобразовать в PDF, 3) Обновить / распечатать PDF. PRO: Продолжение использования текстовых продуктов, которыми клиенты довольны / обучены. CONS: Возможно сложное преобразование docx / pdf посередине в обмен на более простую печать PDF внутри службы Windows.

б. Замените DOC (X) полностью и вместо этого используйте инструменты создания PDF. PRO: тот же двухступенчатый процесс. CON: пользователи привыкли к созданию DOC (X). Может потребоваться дополнительное программное обеспечение / обучение. Многие документы должны быть преобразованы.

с. Обойдите DOCX как сервис и заставьте его печатать внутри сервиса.

Этот вопрос изучает a- DOC(X) conversion to PDF. Учитывая документ Word с пользовательскими свойствами документа и полями, помещенными в документ ... Я, кажется, теряю эти свойства И поля заменяются текущими значениями, когда я конвертирую в PDF через Save As PDFв Word. Какие другие жизнеспособные варианты есть, чтобы преобразовать в PDF - сохраняя эту информацию для шага 2) DOCX Usage/Printing.

1
Я думаю, что вам лучше изучить, как создавать / обновлять файлы .docx без Word, например, используя Office Open XML SDK. Но вам действительно нужно переключиться с vbscript или написать несколько библиотек, вызываемых vbscript. Взгляните на материал Эрика Уайта по созданию документов для некоторых указателей. 10 лет назад 0
@bibadia главная проблема с использованием DOCX не в редактировании / обновлении документов (на самом деле я исследовал обновление текущего процесса с помощью OOXML и не думаю, что эта часть будет обременительной). * Проблема * заключается в печати изнутри службы Windows (желаемое изменение: графический интерфейс для службы Windows). Все, что я читаю, говорит о том, что для установки на сервере требуется слово, и это слово плохо работает как служба (ошибки модального диалога, запросы на взаимодействие с пользователем при ошибках, необходимые записи в реестре пользователей и т. Д.). WernerCD 10 лет назад 0
@Werner, Вы можете заглянуть в Aspose.Words для .NET, который может сохранять пользовательские свойства документа при преобразовании DOCX в PDF без использования автоматизации слов. Это также полностью поддерживается в сценарии сервера. Adam 10 лет назад 0

1 ответ на вопрос

0
StartCoding

Use pdfsharp, it is an open source library. You can set the custom properties of pdf like this:

PdfDocument document = PdfReader.Open("c:\\Test.pdf"); document.Info.Elements.Add( new KeyValuePair<String, PdfItem>("/MyKey", new PdfString("MyValue"))); document.Save("c:\\test.pdf"); 

Похожие вопросы