2009-02-19 6 views
3

Je dois avoir la possibilité de convertir et de fusionner divers documents en un fichier PDF unique.ASP.Net Conversion et fusion de documents en un seul fichier PDF

Les documents peuvent être de différents types, tels que Word, Open Office, Images, Texte, pages Web (par URL) et le PDF se compose généralement de 2-3 documents.

À l'heure actuelle, nous utilisons BCL Technologies easyPDF avec Microsoft Office installé sur le serveur. Cela gère la plupart des documents mais nous ne l'avons pas encore fait pour Open Office.

Nous produisons actuellement environ 100-1000 de ces PDF par jour. La raison pour laquelle je pose la question est que la performance est un problème clé. Le PDF est généré pour les utilisateurs à la volée et les délais d'attente de 30 à 60 secondes deviennent inacceptables.

Nous avons effectué une mise en cache autour des documents lors de leur chargement initial, de sorte que les tâches principales qui se produisent lorsqu'un utilisateur demande un fichier Pdf fusionnent un certain nombre de fichiers PDF déjà générés.

Est-ce que quelqu'un d'autre a utilisé d'autres outils qui fonctionnent de manière fiable pour la plupart des types de documents courants et surtout, rapidement? Quand mis comme ça, il semble que je demande beaucoup!

Editer: Merci pour tous les excellents conseils, je vais regarder dans certains d'entre eux et de comparer les performances. Pour ajouter à tout cela, l'argent n'est pas vraiment un objet. Nous sommes plus qu'heureux de payer pour différentes applications pour effectuer chaque tâche ainsi que d'examiner diverses options matérielles pour répartir la charge autant que possible.

Répondre

3

La fusion de plusieurs documents PDF est normalement assez simple (aussi longtemps qu'ils ne doivent pas nécessairement être fusionnés sur la même page) - vous pouvez comparer vos performances de fusion avec quelque chose comme iTextSharp (version .NET de iText) pour être sûr que ce n'est pas un goulot d'étranglement - sinon la conversion d'autres formats en PDF est probablement le goulot d'étranglement.

Dans la plupart des cas, la méthode utilisée pour convertir X en PDF consiste à exécuter la commande d'impression d'applications, destinée à une imprimante PDF logicielle, pour créer un fichier PDF temporaire.

Cela signifie:

  • L'application cible (par exemple Bureau) est ouvert et fermé
  • Le document doit voyager à travers le service d'impression

Dans votre situation, vous la conversion les documents arbitraires soumis par les utilisateurs, ou les documents proviennent-ils d'une bibliothèque de fichiers stockée? S'il s'agit d'une bibliothèque, vous pouvez créer une copie PDF de chaque fichier au fur et à mesure de son ajout à la bibliothèque (plutôt que lorsque l'utilisateur en fait la demande), puis fusionner uniquement les fichiers PDF.

2

Nous utilisons ABC Pdf. Je ne sais pas si ce sera assez rapide pour vos besoins, mais il semble fonctionner pour notre usage.

-1

Bien que je n'ai aucune suggestion de conversion PDF, je peux dire que ce problème ressemble à un problème qui pourrait être réparti sur un certain nombre de nœuds. Trouvez-vous que la génération PDF est liée au processeur ou existe-t-il d'autres facteurs limitants? Avant de consacrer trop d'efforts à la réécriture de l'interface de la bibliothèque PDF, vous pourriez vouloir voir quels sont les goulots d'étranglement.

2

J'ai eu un problème très similaire où nous avions des documents qui existaient déjà en format PDF et qui devaient permettre à l'utilisateur de les voir tous ensemble. Nous avons acheté le produit PDF4NET qui était d'environ 500 $ d'après mes souvenirs. Il était extrêmement facile à utiliser et ils fournissent des exemples impressionnants de la façon d'utiliser les outils.

O2 Solutions - PDF4NET

Voici l'exemple de code qu'ils fournissent pour la fusion. La ligne du haut ressemble à la sortie du fichier, les deux autres lignes permettent de retransmettre le contenu à l'utilisateur.

 PDFFile.MergeFilesToDisk("append.pdf", "unicode.pdf", "multicolumntextandimages.pdf"); 
     PDFDocument doc = PDFFile.MergeFilesToDoc("append.pdf", "unicode.pdf", "multicolumntextandimages.pdf"); 
     doc.SaveToStream(stream); 
2

Vous dites que vous utilisez Microsoft Office pour ouvrir ces fichiers, j'imagine que c'est le goulot d'étranglement plutôt que la création réelle du PDF.

Est-il possible de distiller ces documents dans un format plus accessible (html/xml/database), de sorte qu'il n'est pas nécessaire d'ouvrir le bureau chaque fois qu'un fichier PDF doit être créé?

Questions connexes