2008-09-10 7 views
3

Contexte:Comment mieux fusionner les informations, sur un serveur, dans une « forme », un fichier PDF généré comme la sortie finale

J'ai une application VB6 j'ai « hérité » qui génère un fichier PDF pour l'utilisateur de passer en revue l'utilisation de l'intégration Acrobat Reader OCX non prise en charge. Le programme génère un fichier FDF avec les données, puis rend le résultat fusionné lorsque le FDF est fusionné avec un PDF. Il ne fonctionne correctement qu'avec Acrobat Reader 4 :-(L'installation d'une version plus récente d'Acrobat Reader casse cette application, rendant les utilisateurs très mécontents

Je souhaite réorganiser cette application pour qu'elle envoie les données à fusionné à un serveur de génération de sortie PDF.Ce serveur va fusionner les données qui lui sont transmises sur le formulaire, générer une image PDF de celui-ci, et stocker, de sorte que tout utilisateur souhaitant afficher le résultat final peut simplement obtenir le PDF (il Si les données sous-jacentes sont modifiées, le PDF sera supprimé et régénéré la prochaine fois qu'il est demandé.Le programme client peut alors avoir n'importe quelle version d'Acrobat Reader, car il sera utilisé exclusivement pour l'affichage des fichiers PDF (comme prévu) Le serveur sera probablement écrit en .NET (C#) avec Visual Studio 2005, probablement en tant que service Web ...

Question:

Comment les autres je vais recommander à ce sujet? Dois-je utiliser Adobe Acrobat 9 sur le serveur pour ce faire, en mettant les données au format FDF ou au format XML d'Adobe, et en laissant Acrobat faire la fusion? Y a-t-il de grands concurrents dans l'espace «Fusionner les données sur un formulaire et produire un PDF»? Comment les autres font-ils cela? Bien que certaines sorties soient générées via FDF/PDF, une autre partie de l'application envoie en fait des lignes, des graphiques et du texte à l'imprimante (ou un formulaire à des fins de prévisualisation) une page à la fois, en donnant les coordonnées x/y, la police, la taille, etc. pour chacun, sachant quand il est à la fin d'une page, etc. Ce code est actuellement dans le programme affiche ceci pour l'utilisateur à examiner, et il est également dans le programme qui imprime le formulaire final à l'imprimante. Par souci de cohérence entre le relecteur et l'imprimeur, je voudrais également déplacer cette logique de génération de sortie vers un serveur, soit en utilisant un bon outil d'API de génération PDF, soit en utilisant le code tel quel et générer un PDF avec une imprimante PDF ... ce PDF pour l'affichage par les clients. Google "Logiciel de formulaire" ou "logiciel de formulaire de remplissage" ou des recherches similaires renvoie sooooooooo beaucoup de documents sans rapport, principalement liés à l'interface utilisateur pour les utilisateurs de remplir des formulaires, je ne sais pas comment bien affiner ma recherche. Ce site semble être l'endroit idéal pour poser une telle question, car d'autres programmeurs doivent également générer des résultats similaires, et ont essayé d'excellents outils.

EDIT:

J'ai ajouté tag PDF ainsi que de génération de PDF. En outre, mon client actuel insiste sur la sortie PDF, mais j'apprécie les suggestions alternatives.

Répondre

1

ne peut pas aider avec la solution VB6, peut aider avec. Net ou solution java sur le serveur. Obtenez iText ou iTextSharp de http://www.lowagie.com/iText/.
Il a une classe PdfStamper qui peut fusionner un PDF et des cours FDF FDFReader/FDFWriter pour générer des fichiers FDF, obtenir les noms de champ à partir de fichiers PDF, etc ...

0

Suivez mon conseil. Fossé PDF pour XPS. Je travaille sur deux applications, à la fois basées sur le serveur. Un affiche les documents basés sur l'image en tant que PDF dans un navigateur. La seconde utilise des modèles FixedPage pour construire des documents XPS liés à des sources de données. Ma conclusion après avoir travaillé sur les deux projets est que les fichiers PDF sont nulles; Les documents XPS le sont moins. Vous devez payer en espèces pour une bibliothèque PDF décent, tandis que XPS est livré avec le cadre. La génération de document PDF est un brin de mémoire, a beaucoup de nids de poule et n'est pas très convivial. Les documents XPS ont une empreinte beaucoup plus petite et moins de chances de vous tirer dans le pied.

0

J'ai eu beaucoup de succès en utilisant Microsoft Word. Le formulaire est conçu dans Word et composé avec des données XML. Le document est exécuté à travers un convertisseur de PDF (Neevia dans ce cas, mais il y a mieux) pour générer le PDF.

Tout cela est fait en C#.

0

Même bateau. Nous faisons actuellement des pdfs de cette façon: l'application vb6 dépose un enregistrement dans sql (avec nom de fichier, date de création, utilisateur et destination finale) et le xls (ou doc) est déplacé dans un répertoire de serveur (share) et le serveur a un Service vb.net qui a un gestionnaire de fichiers surveillant ce répertoire. Le fichier apparaît, le service lance excel (mot) pour pdf le fichier via Adobe, cherche à sql pour savoir quoi faire avec le PDF quand il est fait, et enregistre l'heure de fin.

C'était la solution bon marché - il a fallu environ un jour pour faire le code et un autre jour pour déboguer les deux extrémités et lancer la construction.

Ce n'est pas la façon de le faire. Adobe se bloque à des moments aléatoires en essayant de créer les fichiers PDF. il fonctionnera pendant deux semaines sans problèmes du tout, et puis (comme aujourd'hui) il va planter toutes les 5 minutes. ou toutes les deux heures. ou à 11:07, 2:43, 3:05 et 6:11.

Nous allons convertir les données en Excel et en mots et déposer les données directement dans PDF en utilisant PDFTron dans la prochaine révision. Oui, PDFTron coûte de l'argent, (nous avons acheté la licence de 1 kilobuck par processeur) mais cela fera l'affaire, et bien. XPS sont gentil mais moi, comme vous, devez fournir des fichiers PDF. C'est le chemin des choses.

Découvrez pdfTron (google it) et voyez s'il va faire ce que vous voulez. Ensuite, vous avez juste à comprendre quelle licence vous avez besoin et comment vous allez payer pour cela. Si quelqu'un trouve quelque chose de mieux, j'espère qu'ils vont voter en haut de la liste !!!

Questions connexes