Delphi World - Конвертируем TIF в PDF
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Конвертируем TIF в PDF

Автор: Morten Ravn-Jonsen

...и написал Иисус конвертер water2wine, и стал раздавать его freeware...

Как-то раз получился TIF файл на несколько страниц и возникла необходимость конвертации его в PDF формат. Для использования такой возможности необходимо иметь полную версию Adobe Acrobat. Функция тестировалась на Adobe Acrobat 4.0.

Сперва Вам необходимо импортировать элементы управления Acrobat AxtiveX.

  1. Выберите Component -> Import ActiveX Control
  2. Выберите Acrobat Control for ActiveX и нажмите install
  3. Выберите пакет ActiveX control для инсталяции
  4. Добавьте PDFlib_tlb в Ваш проект. Этот файл находится в директории Borland\Delphi5\Imports.

Как использовать функцию

Вот пример её вызова:


if not TifToPDF('c:\test.tif', 'c:\test.pdf') then 
  Showmessage('Could not convert'); 

Функция TifToPdf:


function TifToPDF(TIFFilename, PDFFilename: string): boolean;
var
  AcroApp: variant;
  AVDoc: variant;
  PDDoc: variant;
  IsSuccess: Boolean;
begin
  result := false;
  if not fileexists(TIFFilename) then
    exit;
  try
    AcroApp := CreateOleObject('AcroExch.App');
    AVDoc := CreateOleObject('AcroExch.AVDoc');
    AVDoc.Open(TIFFilename, '');
    AVDoc := AcroApp.GetActiveDoc;
    if AVDoc.IsValid then
    begin
      PDDoc := AVDoc.GetPDDoc;
      PDDoc.SetInfo ('Title', '');
      PDDoc.SetInfo ('Author', '');
      PDDoc.SetInfo ('Subject', '');
      PDDoc.SetInfo ('Keywords', '');
      result := PDDoc.Save(1 or 4 or 32, PDFFilename);
      PDDoc.Close;
    end;
    AVDoc.Close(True);
    AcroApp.Exit;
  finally
    VarClear(PDDoc);
    VarClear(AVDoc);
    VarClear(AcroApp);
  end;
end;

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования