ActiveX компонент для преобразования документов Word и Excel в PDF - PullRequest
2 голосов
/ 22 февраля 2012

Нам нужно добавить функцию в наше собственное приложение Borland Delphi 7 для преобразования документов MS Office (.doc, .docx, .xls, .xlsx) в PDF.

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

Это потребуется для работы с версиями Office, более ранними, чем 2007 г., поскольку в 2007 г. преобразование доступно через надстройку, а в 2010 г. оно доступно по умолчанию.

Нас также интересует, можно ли это сделать без стороннего компонента.

Ответы [ 2 ]

4 голосов
/ 23 февраля 2012

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

Лучший способ - использовать Office для конвертации.
Office 2007 - это первая версия, которая может сохранить документ в формате PDF.
Так что, если у вас установлена ​​версия (не вы(но кто-то еще) до 2007 года вы должны установить PDF-принтер (например, PDF-создатель или еще много чего).

Затем вы можете настроить Word с помощью OLE-автоматизации (работает только в Office 2007 и более поздних версиях)

procedure ConvertToPDF(Filename: string);
const
  pdf = '.pdf';
var
  NewFilename: string;
  Extension: string;
  WinWord, Document: OleVariant;
  e: OleVariant;
begin
  e:= EmptyParam;
  Extension:= ExtractFileExt(Filename);
  NewFilename:= StringReplace(Filename, Extension, pdf, [rfReplaceAll, rfIgnoreCase]);
  WinWord := CreateOleObject('Word.Application');        
  Document := WinWord.Documents.Open(Filename);
  Document.SaveAs(NewFilename, wdFormatPDF, e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e,e);
  .... 
4 голосов
/ 22 февраля 2012

Один из вариантов - использовать OpenOffice, который может открывать документы MS Office и сохранять их в формате PDF.

Это можно автоматизировать и даже использовать по сети (служба центрального конвертера) через безголовый режим OpenOffice,который принимает команды управления через сокетное соединение.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...