2009-10-29 9 views
1

J'ai créé une application Web qui peut être considérée comme une forme d'application trop compliquée. Il y a beaucoup de zones de texte avec une limite de caractères donnée. Après la soumission du formulaire, diverses choses se produisent et l'une d'entre elles est la génération de PDF.Saisie de texte long à partir de la génération d'utilisateurs et de PDF

Le texte est interrogé à partir de la base de données et inséré dans le modèle PDF créé dans iReports. Cela fonctionne bien mais la douleur majeure est le texte débordant.

Le nombre maximal de caractères est défini en fonction du texte «moyen». Mais parfois, les gens préfèrent écrire avec CAPS ou ajouter beaucoup de sauts de ligne pour mettre en forme leur texte. Ceux-ci font alors déborder le texte de l'utilisateur de l'espace donné en PDF. Malheureusement, le document PDF doit ressembler à un vrai formulaire d'application, donc je ne peux pas autoriser un espace illimité.

Quels types d'approches avez-vous utilisé pour y remédier?

  • Nettoyer/restreindre l'entrée utilisateur?
  • Calculer l'espace requis du texte en fonction des métriques de police?
  • Fournir un aperçu du fichier PDF? (trop mauvais utilisateurs ne sont pas autorisés à changer leur entrée après la soumission ...)

Répondre

1

Idéalement, calculer l'exigence basée sur des mesures. Je ne sais pas comment iReports gère le texte, mais avec iText, il définit tout lui-même, vous présentez simplement les données sous la forme d'un document de diffusion, donc nous ne nous inquiétons pas du débordement de texte. Cependant, il se peut que iReport ne prenne pas cela en charge, ou que vous ayez besoin que la mise en page PDF s'adapte à certaines limites. Je vais essayer de nettoyer l'entrée (c'est-à-dire: si tout est en majuscules, en minuscules/phrase/cas approprié), supprimez les espaces supplémentaires. Si le nettoyage de l'entrée ne peut pas être effectué de manière fiable, ou si les gens continuent de le faire, je le limiterais également. En dernier recours, je présenterais le PDF à autoriser par l'utilisateur. Vraiment, les utilisateurs ne devraient pas avoir plus de travail à faire, et ils ne le feront pas de toute façon.

0

Avez-vous le contrôle de la police utilisée lors de la génération du PDF? Si oui, je chercherais une police dans la famille Monospace. Cela vous donnera une longueur constante pour un nombre donné de caractères, indépendamment de la ponctuation, de la capitalisation, etc.

1

Vos propres suggestions de solutions à votre problème sont toutes bonnes. La question la plus importante à laquelle il faut répondre est probablement la suivante: à quoi devrait ressembler votre PDF lorsque les données à afficher dans un champ ne correspondent pas? Avez-vous besoin de la "réponse complète" pour autre chose? Lorsque vous connaissez la réponse à ces questions, vos options sont réduites. Par exemple, si un champ doit être limité à 1/2 page, et que les utilisateurs saisissent parfois plus de la moitié d'une page de texte, vous pouvez soit 1) limiter la saisie de l'utilisateur - lors de la soumission calculer la taille (en utilisant police-métriques comme vous l'avez dit) et rejeter la soumission jusqu'à ce qu'elle soit corrigée. Cela suppose que vous pouvez légitimement forcer l'utilisateur à réduire sa saisie de données. 2) accepter l'entrée utilisateur et tronquer dans l'affichage de ce rapport. Certains systèmes utilisent "..." pour indiquer que les données ont été tronquées et peuvent fournir un lien hypertexte (même dans le fichier PDF) pour obtenir plus d'informations.

Fournir un aperçu fonctionnerait très bien, mais seulement si les utilisateurs sont bons à vérifier et à corriger et votre système peut gérer la charge supplémentaire que cela va générer.

Questions connexes