2010-04-24 17 views
2

Je travaille sur une application Java qui va maintenir la base de données des paroles de chansons en texte brut et imprimer quelques songbooks/chordbooks (c'est créer un fichier PDF à partir de chansons sélectionnées). Je planifiais que l'application Java va générer du code source pour pdflatex et après avoir compilé cet utilisateur source obtiendra le fichier PDF. Dernièrement, j'ai rencontré beaucoup de problèmes en raison de la limitation du latex: taille de la mémoire fixe (certaines images seront également dessinées en PDF) - erreur en cas de dépassement, aucun moyen d'interroger fin de ligne ou de page dynamiquement, il est très difficile de contourner l'algorithme de placement de latex d'une manière complexe, ... voir aussi mes autres questions concernant le latex. J'arrive à la conclusion que le latex n'est pas une bonne option pour la génération automatisée de PDF.Alternative au latex/une façon de composer de beaux documents de Java en PDF

J'ai donc besoin d'un remplacement. Je dois être en mesure de composer:

  • Accords sur des paroles quand les paroles sont de largeur variable char, alors je dois être capable de mesurer la largeur du texte
  • diagrammes d'accords qui signifie que je vais devoir tirer assez complexe images
  • Chaque chanson double page séparée
  • différentes polices, etc.

Merci pour toutes les réponses

+0

Bien sûr, si vous êtes ce genre de personne, vous pouvez télécharger la spécification PDF et rouler votre propre petite bibliothèque. Il m'a fallu environ une journée pour obtenir un travail de base qui servait mon but - dans mon cas, je préférais passer une journée à programmer qu'une journée à lire de la documentation. Cela dépend un peu de la façon dont vous préférez travailler, je suppose. –

Répondre

1

Voici quelques-unes API source PDF ouvert http://java-source.net/open-source/pdf-libraries

Cela a été demandé beaucoup de temps, You might want to look at this post

+0

Merci. Je m'attendais à ce qu'il y ait quelques librairies pour produire directement des PDF, mais je ne sais pas ce qui est le mieux pour mon but. C'est pourquoi j'ai indiqué mes besoins spécifiques. Pouvez-vous donner quelques conseils à leur égard s'il vous plaît? – drasto

+1

@drasto Vous avez un besoin très particulier - je doute que beaucoup de gens l'aient fait qui soit aussi programmeur. J'ai googlé pour la création de musique en pdf et je n'ai pas trouvé grand-chose, mon expérience musicale se limite à jouer de la trompette à l'école primaire et au lycée. Vous pourriez avoir besoin de faire un peu d'expérimentation de votre choix ici. –

+0

J'ai renoncé à essayer de forcer le latex à faire le travail. J'utilise iText maintenant et jusqu'ici il fait le travail. L'hypernation des mots automatiques du latex me manque et il est encore plus difficile de composer avec iText, puis d'écrire des macros en latex, mais jusqu'à présent, j'ai fait tout ce dont j'avais besoin. Il est beaucoup plus adaptable que le latex. – drasto

1

IText est une bibliothèque libre qui offre beaucoup de possibilités pour la création de fichiers PDF par programmation. Pourquoi ne pas simplement utiliser lilypond avec du latex?

0

c'est fait pour composer de la musique.

+0

Parce que Lilipond ne fait pas ce que je veux que mon programme fasse - manque de fonctionnalités, ne formate pas automatiquement la musique ... Et mon programme sera plus spécifique, uniquement pour les accords de guitare sur les paroles. – drasto

1

Plutôt que d'essayer de gérer/calculer les complexités de la disposition souhaitée, vous pouvez essayer Docmosis. Il vous permettra de mettre en page un document en tant que modèle en utilisant des formats doc ou odt. Cela signifie que si vous pouviez créer un document ou une odt comme vous le souhaitez, vous pouvez le transformer en modèle et obtenir Docmosis pour le rendre au format PDF. Le texte et les images peuvent être placés à l'intérieur ou à l'extérieur des tables, ce qui rend la mise en page assez facile à gérer.

1

ConTeXt est un autre système TeX, mais il est plus facile de contrôler la mise en page qu'avec LaTeX. Pour le dessin, vous pouvez utiliser PGF/TikZ ou MetaPost. Le support pour les deux est disponible dans ConTeXt. Avec les scripts Lua intégrés de ConTeXt, vous pouvez dessiner les accords automatiquement, en supposant que vous les avez stockés dans une sorte de structure de données.