2010-10-27 7 views
2

Je voudrais fusionner plusieurs fichiers doc ou rtf en un seul fichier qui devrait être le même format de plusieurs fichiers. Ce que je veux dire, c'est que si un utilisateur sélectionne plusieurs fichiers gabarit rtf à partir d'une liste et clique sur un bouton sur une page web, la sortie devrait être un fichier rtf unique combinant plusieurs fichiers gabarit rtf, je devrais utiliser php pour cela.Fusionner plusieurs fichiers doc ou rtf en un seul fichier doc ou rtf en utilisant le script php

Je n'ai pas encore décidé du format des fichiers de modèles, mais il devrait s'agir de rtf ou de doc, et je suppose également que le fichier modèle contient également des images.

J'ai passé de nombreuses heures à faire des recherches sur la bibliothèque pour cela, mais je n'arrive toujours pas à le trouver.

S'il vous plaît aidez-moi ici !! :(

Merci à l'avance.

Répondre

0

je travaille sur un projet similaire et havne't réussi à trouver PHP (ou toute autre langue open source) bibliothèques pour manipuler des fichiers MSWord. La façon dont j'approche . il est un peu compliqué, mais fonctionne Voici comment je le ferais (en supposant que vous avez un serveur Linux):

Configuration:

  1. Installer JODConverter et OpenOffice
  2. St art open office en tant que serveur (voir http://www.artofsolving.com/node/10)

Approche (ie. ce qu'il faut faire dans votre code PHP):

  1. Convertissez vos fichiers MS Word ou RTF en format ODT en appelant JODConverter via des accents graves ou exec()
  2. Décompressez chaque fichier dans un répertoire temporaire de son propre
  3. Lire la contents.xml fichier de chaque document décompressé en utilisant un DOM Parser
  4. Extrait les <office:text> contenu de chacun et concaténer
  5. Mettre ce xml concaténés retour dans le bon endroit dans l'un des content.xml fichiers
  6. Re-zip le contenu de ce répertoire temporaire et lui donner une extension .odt
  7. Utilisez JODConverter pour convertir ce fichier à MSWord nouveau

Comme je l'ai dit, ce n'est pas assez, mais il ne le travail.

Si vous cherchez à aller dans le sens RTF, cette question peut également aider: Concatenate RTF files in PHP (REGEX)

2

Si vous êtes à la recherche d'une solution pour le traitement des documents RTF uniquement, vous pouvez trouver un package PHP pour fusionner plusieurs RTF documents ici:

www.rtftools.com

Voici un court exemple sur la façon de fusionner plusieurs documents ensemble:

include ('path/to/RtfMerger.phpclass') ; 

$merger = new RtfMerger ('sample1.rtf', 'sample2.rtf') ; // You can specify docs to be merged to the class constructor... 
$merger -> Add ('sample3.rtf') ;       // or by using the Add() method 
$merger [] = 'sample4.rtf' ;        // or by using the array access methods 
$merger -> SaveTo ('output.rtf') ;      // Will save files 'sample1' to 'sample4' into 'output.rtf' 

Ce package vous permet de gérer des documents plus volumineux que la mémoire disponible.

+0

Il est à noter que cette solution ne fonctionne que pour PHP 5.4.0 et plus tard –

Questions connexes