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

Delphi Discussion :

[Quick Report] Erreur MetaFichier Incorrect lors du Load d'un fichier QRP


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Quick Report] Erreur MetaFichier Incorrect lors du Load d'un fichier QRP
    Bonjour à tous.

    Nous développons sur une vieille version de delphi (D4) et utilisons en partie la version 3.05 Standard de QuickReport livrée avec Delphi4.
    Je suis en charge de mettre en place l'export PDF depuis Quick Report.
    Alors j'ai pas mal fouiner sur le net et je me suis rendu compte qu'aucune alternative était possible avec D4 et Quick Report 3.05 (Enfin d'après ce que j'ai trouvé).

    Alors on a une install de Delphi 6 avec un Quick Report 3.6.2 Pro. Je me suis dit merveilleux je vais faire une DLL qui prend un fichier QRP (généré en D4) et ma DLL (D6) va me le transformer en PDF....
    Et bien non J'ai une erreur MetaFichier incorrect lors que je fais un Load de mon QRP (Version 3.05 standard) depuis une version 3.6.2 Pro en D6.
    J'ai vu qu'on pouvait faire pas mal de chose notamment avec Gnostice, ou même le PdfFilter mais bon en D4 on est quand même limité...

    Si quelqu'un a une solution, ou même une piste ca serait très sympa.
    Bonne journée.

    Je met mon code très basic du chargement que je fait !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    procedure LoadReport;
    var
      lReport : TQuickRep;
    begin
      with TOpenDialog.Create(nil) do
      try
        if not Execute then
          Exit;
     
        lReport := TQuickRep.Create(nil);
        lReport.QRPrinter := TQRPrinter.Create;
        lReport.QRPrinter.Load(FileName);
        lReport.Preview;
      finally
        Free;
      end;
     
    end;

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 934
    Points
    40 934
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par damoreau Voir le message
    Nous développons sur une vieille version de delphi (D4) et utilisons en partie la version 3.05 Standard de QuickReport livrée avec Delphi4.
    Je suis en charge de mettre en place l'export PDF depuis Quick Report.
    Alors j'ai pas mal fouiner sur le net et je me suis rendu compte qu'aucune alternative était possible avec D4 et Quick Report 3.05 (Enfin d'après ce que j'ai trouvé).
    Je le fais avec mes vieux programmes D3, j'ai même indiqué comment faire dans le forum Quickreport (car oui il y en a un ici)
    et la discussion pour l'export de fichiers QRP est ici, il y a même un source

    Bon, c'est loin d'être l'idéal car la résolution n'est pas excellente (cependant je pense qu'elle est "améliorable").
    Le pdf est largement lisible mais je reçois de temps en temps des plaintes, qu'un réglage de Adobe permet de corriger (inconvénient quand ce n'est pas Adobe ....)
    Cependant il faut la version Pro de 3.0.5 (je pense qu'elle est accessible sur le site de Quickreport en free

    Et bien non J'ai une erreur MetaFichier incorrect lors que je fais un Load de mon QRP (Version 3.05 standard) depuis une version 3.6.2 Pro en D6.
    l'erreur est due à un changement de format entre les versions, donc, de ce côté, c'est mort

    Si quelqu'un a une solution, ou même une piste ça serait très sympa.
    une autre solution consiste à installer une imprimante PDF virtuelle

    me MP, si vous êtes intéressé, que le lien est mort ou autres causes

    Serge
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour Serge,

    Merci pour votre réponse et tout vos conseils. Alors pour aller au bout des choses ont le fait déjà (générer des pdf), en partant du TQuickRep en le transformant d'abord en WMF et ensuite en RTF pour faire une sauvegarde en PDF. La qualité est raisonnable mais pas optimiser du tout car pour 3000 pages par exemple il faut la nuit si le traitement n'échoue pas avant......

    Je vais faire des essais avec votre méthode (via le composant Nishita's PDF Creation VCL (TNPDF)).
    Je vous tiens au courant des performances.

    Merci. Bonne journée

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Avancé
    Bonjour,

    Alors je reviens vers vous pour vous annoncer un peu mon avancement. Alors j'arrive à avoir un résultat très bien en mixant mon D4 et mon D6.
    Explication :
    - Depuis mon projet principal en D4, j'utilise toujours la version 3 Standard et j'exporte les fichiers Meta du QuickReport que j'ai généré. (un fichier par page).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ..
        for I := 1 to QrPrinter.PageCount do
        begin
          lMeta := QrPrinter.GetPage(I);
          lMeta.SaveToFile(Format('%s%s_%d.meta', [lDir, lFileName, I]));
        end;
    ..
    Ensuite dans mon D6, j'ai fait une DLL qui utilise le générateur de PDF de Synopse. (TPDFDocumentGDI)
    Ma DLL prend en paramètre le chemin (lDir), le nom de base des fichiers (lFileName), le nombre de page (I) et le fichier de sortie pdf. Ensuite, elle génère le PDF en chargement un fichier meta par page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        with TPdfDocumentGDI.Create do
        try
          for I := 1 to aPageCount do
          begin
            AddPage;
            lMeta := TMetafile.Create;
            lMeta.LoadFromFile(Format('%s%s_%d.meta', [lDir, aFileBase, I]));
            VCLCanvas.Draw(10, 10, lMeta);
          end;
          SaveToFile(aOutput);
        finally
          Free;
        end;
    Cette méthode est très rapide en terme de génération, (moins de la seconde pour 250 pages) et assez optimisée, car j'arrive sur un PDF de 650Ko pour 250 pages.
    Cependant, il me reste une question.
    Est-il possible depuis les fichiers Meta d'accéder aux composants Qr de la page ? Car pour générer un pdf de 250 pages c'est très rapide, mais si je dois générer 250 pdf d'une page, je n'ai pas d'autres solution que de lancer 250 fois le QuickReport et ca, c'est très long !!!!!

    Merci de votre aide.
    Bonne journée.

Discussions similaires

  1. ZipArchive, "Fin de l'archive incorrecte" lors de l'ouverture du fichier
    Par Bedouin77 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/10/2012, 15h43
  2. [MySQL] Erreur de syntaxe lors de l'import de fichier .sql
    Par dadoo91 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/05/2008, 08h47
  3. Quick report Delphi "Erreur lors de l'opération"
    Par jv2759 dans le forum QuickReport
    Réponses: 0
    Dernier message: 07/02/2008, 17h56
  4. Erreur quand je ferme mon Quick Report
    Par ndsaerith dans le forum Delphi
    Réponses: 1
    Dernier message: 03/01/2007, 12h50
  5. Réponses: 1
    Dernier message: 22/11/2005, 16h28

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