IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Peut-on sauvegarder un document Word sous format pdf ? [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut Peut-on sauvegarder un document Word sous format pdf ?
    Bonjour,
    A partir de Lazarus (version 2.0.10), je manipule un document word ".DOT", que je sauvegarde en ".doc" et tout marche. Mais si j'essaie de le sauvegarder en pdf, j'ai l'erreur suivante :

    Le projet projet1 a levé une classe d'exception "EOleError" avec le message :
    Method 'SaveAs' is not supported by automation object.

    voilà le code de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.ToPDFClick(Sender: TObject);
    var
      wd:TOfficeDocumentConverter;
    begin
      wd := TOfficeDocumentConverter.Create(Nil, False);
      wd.Convert('D:\Test\Doc1.doc', 'D:\Test\Doc1.pdf', 17);
      wd.Free;
    end;
    Merci d'avance.

  2. #2
    Membre éclairé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 204
    Points : 885
    Points
    885
    Par défaut
    Bonjour,

    Voilà le code que j'ai trouvé. Je l'ai essayé. Il fonctionne chez moi mais parfois il produit aussi une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    uses
      ComObj;
    const
      wdExportFormatPDF = 17;
    var 
      Word, Doc: OleVariant;
    begin
      Word := CreateOLEObject('Word.Application');
      Doc := Word.Documents.Open('C:\Document.docx');
      Doc.ExportAsFixedFormat('C:\Document.pdf', wdExportFormatPDF);
    end;

  3. #3
    Membre éclairé
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 204
    Points : 885
    Points
    885
    Par défaut
    Il y a un problème. Il faut ouvrir et refermer préalablement 2 fois le fichier avec Word, pour qu'il y ait génération du fichier en pdf. Etonnant...

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    Citation Envoyé par tonton67 Voir le message
    Bonjour,
    A partir de Lazarus (version 2.0.10), je manipule un document word ".DOT", que je sauvegarde en ".doc" et tout marche. Mais si j'essaie de le sauvegarder en pdf, j'ai l'erreur suivante :
    Le projet projet1 a levé une classe d'exception "EOleError" avec le message :
    Method 'SaveAs' is not supported by automation object.
    voilà le code de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.ToPDFClick(Sender: TObject);
    var
      wd:TOfficeDocumentConverter;
    begin
      wd := TOfficeDocumentConverter.Create(Nil, False);
      wd.Convert('D:\Test\Doc1.doc', 'D:\Test\Doc1.pdf', 17);
      wd.Free;
    end;
    Merci d'avance.
    Il me semble que tu ne nous as pas tout dit :

    1 - Apparemment tu utilises la classe TOfficeDocumentConverter qui n'est pas une classe incluse dans Lazarus. Il me semble qu'elle est ici . Elle utilise Word par son objet COM donc
    2 - Quelle version de word utilises-tu ?

    Pour faire ce type de conversion tu pourrais aussi utiliser LibreOffice en ligne de commande avec un TProcess.
    exemple :
    "C:\Program Files (x86)\LibreOffice 5\program\soffice.exe" -headless -convert-to pdf:writer_pdf_Export -outdir C:\temp C:\temp\a.docx


    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    Pour faire ce type de conversion tu pourrais aussi utiliser LibreOffice en ligne de commande avec un TProcess.
    Intéressant, ça ! Je vais l'essayer tout de suite.

    Sinon il y a pandoc, mais pour pouvoir sortir du PDF il faut installer un truc en plus. J'ai souvenir que c'était un peu compliqué.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 73
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    Merci pour vos interventions.
    La méthode de Chrispi fonctionne parfaitement.
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir un Document Word sous VB6
    Par fiche00 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 13/01/2009, 00h32
  2. Mise en page d'un document Word sous VBA/Word
    Par cupidette92 dans le forum VBA Word
    Réponses: 15
    Dernier message: 20/02/2008, 18h48
  3. Réponses: 2
    Dernier message: 02/06/2007, 23h26
  4. ouvrir un document word sous access
    Par sam_212 dans le forum Access
    Réponses: 5
    Dernier message: 31/07/2006, 12h09
  5. [VB 6.0] Sauvegarde de document Word (SaveAs)
    Par KrusK dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 27/07/2006, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo