J'utilise iTextShaRP (C # ITEXT Port) pour créer des PDF à partir du texte / html. La majeure partie de mon texte est en hébreu, une langue droite à gauche. P>
Mon problème est que les PDF montrent que RTL Langauge en sens inverse, j'ai donc besoin d'inverser mes chaînes d'une manière qui ne renverserait que le texte RTL sans inversion de chiffres ni de texte en anglais. Je crois comprendre que Fribidi permet de le faire sur Linux, mais je ne pouvais trouver aucune solution pour ce problème pour Windows. P>
Je souhaiterais des suggestions, y compris une alternative à ItextShaRP qui le ferait automatiquement (si l'on existe). P>
4 Réponses :
HTML affiche l'hébreu / arabe en mode logique et dans PDF, vous devez stocker le mode Visual IT. Ce que vous devez faire est de convertir du mode logique en mode visuel. Il existe certaines bibliothèques qui font cela (Google pour Minibidi qui est sous licence BSD IMHO, ou Fribidi qui est GPL ou LGPL). P>
Ma véritable suggestion serait de changer de direction. Écrivez une très petite application à Qt4 qui prend comme premier argument de l'URL, et le second pdf à écrire. Puisque Qt4 a la prise en charge de HTML (via qtwebkit) a la possibilité d'imprimer sur pdf (Script Post Script et SVG également), cela devrait être plus simple, puis écrivez votre propre solution HTML-> PDF. P>
PDFCreator est un outil gratuit pour créer des fichiers PDF à partir de presque toutes les applications Windows. Il s'installe comme pilote d'imprimante Windows, de sorte qu'il puisse être utilisé par tout programme Windows qui a une fonctionnalité d'impression.
Vous pouvez traiter votre entrée comme des chaînes de texte simples à imprimer, et peut-être utiliser le Si vous souhaitez plonger un peu plus profondément dans la droite à gauche Un extrait d'un Imprimer Code> Option de menu de
Notepad code> créera le fichier PDF correct. p>
C # code> Impression, utilisez < Un href = "http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags.aspx" rel = "nfollow Noreferrer">
stringformatflags.directionRightToleft code> chaîne Format avec
graphiques.Drawstring () Code>
appels. p> Gestionnaire d'événements d'impression code>: p>
Il suffit de mettre la chaîne dans la cellule du tableau:
Afficher les textes RTL à l'aide d'ItextShaparpe correctement: P>
basefont.identity_h code> li>
- alors vous devez utiliser des éléments de conteneur qui prennent en charge
exécutant code>, tel que pdfpcell code>, colonnetext code>, etc., et maintenant, vous pouvez définir leur < code> élément.rundirection = pdfwriter.run_direction_rtl code>; li>
ul>