Utilisation de IFilter ? RTF et PDF ?
Bonjour à tous,
voici mon probleme, je ne sais pas comment faire 2 ou 3 petites choses ! à savoir :
- Comment puis-je implementer la reconnaissance/conversion des PDF et des RTF en sachant que j'ai les filtres à ma disposition, l'install proposée par Delphi pour le format PDF ne fonctionne pas dans mon prog, le retour est vide !!! Pour les RTF, en revanche j'ai que la dll, j'ai essayé de renseigner la clé de registre :
Code:
1 2
| HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\ContentIndex
dans DLLsToRegister |
mais toujours rien !?
J'ai chez moi et chez quelques'uns de mes amis la conversion Doc, XLS, XLD, PPT et PPS qui fonctionne. Ils sont sous XP et chez d'autres aussi sous XP cela ne fonctionne pas.
Comment puis je faire en sorte que cela fonctionne chez tout le monde ?
En sachant que d'aprés ce que j'ai lu, il n'est pas necessaire d'avoir un catalogue IIS fabriqué !?
Merci à tous pour votre aide,
PS : voici le bout de mon code, juste un bouton go sur une fiche
PS2 : le fichier est commenté là où j'ai mes problemes.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPSumInf, SPFilter;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var info: TSummaryInformation;
stream : TMemoryStream;
c : PChar;
begin
info:=nil;
// ceci avec un doc, xls, xld, ppt et pps plante à chaque fois
// quelque soit le fichier. L'erreur est dans le fichier SPSumInf.pas
GetSummaryInformation('c:\f.doc', Info);
showmessage(Info.Title);
// fonctionne pas pour PDF et RTF !!!
Stream:=TMemoryStream.Create;
Try
GetFileContentsFromIFilter('c:\a.pdf', stream);
Stream.Seek(0, soFromBeginning);
c:=Stream.Memory;
showmessage(c); // le showmessage est vide
// Le pas à pas va bien chercher le fichier pdffilt.dll
// mais à un moment j'ai une fonction qui renvoie None_OK
Finally
Stream.free;
End;
end;
end. |
Amicalement,
Bruno