iText pdf library
Website search

pdfCalligraph

Introduction

iText 7 pdfCalligraph

pdfCalligraph vous permet de débloquer des fonctionnalités de flux de travail avancées en typographie PDF. Il étend votre flux de travail sur les documents avec des langages internationaux et des systèmes d'écriture comprenant des bibliothèques de rendu PDF appropriées, des options de dissimulation et d'autres fonctionnalitées adaptés au traitement des données.

Supported Scripts

Language Script Module
Arabic, Persian, Kurdish, Azerbaijani, Sindhi, Pashto, Lurish, Urdu, Mandinka, Punjabi and others ARABIC pdfCalligraph
Hebrew, Yiddish, Judaeo-Spanish, and Judeo-Arabic HEBREW pdfCalligraph
Bengali BENGALI pdfCalligraph
Hindi, Sanskrit, Pali, Awadhi, Bhojpuri, Braj Bhasha, Chhattisgarhi, Haryanvi, Magahi, Nagpuri, Rajasthani, Bhili, Dogri, Marathi, Nepali, Maithili, Kashmiri, Konkani, Sindhi, Bodo, Nepalbhasa, Mundari and Santali DEVANAGARI, NAGARI pdfCalligraph
Gujarati and Kutchi GUJARATI pdfCalligraph
Punjabi GURMUKHI pdfCalligraph
Kannada, Konkani and others KANNADA pdfCalligraph
Khmer (Cambodia) KHMER pdfCalligraph
Malayalam MALAYALAM pdfCalligraph
Odia ORIYA pdfCalligraph
Tamil TAMIL pdfCalligraph
Telugu (Dravidian language) TELUGU pdfCalligraph
Thai THAI pdfCalligraph
Chinese Core
Japanese Core
Korean Core
WESTERN Core
Russian, Ukrainian, Belarussian, Bulgarian and others CYRILLIC Core
Greek GREEK Core
Armenian ARMENIAN Core
Georgian GEORGIAN Core
Show more Show less

How it works

For this example, we'll demonstrate using pdfCalligraph to correctly render text in different languages. First, let’s start with a simple English sentence, which we've translated into three different languages using Google Translate.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
final String[] sources = {"english.xml", "arabic.xml", "hindi.xml", "tamil.xml"};
        final PdfWriter writer = new PdfWriter(DEST);
        final PdfDocument pdfDocument = new PdfDocument(writer);
        final Document document = new Document(pdfDocument);
        final FontSet set = new FontSet();
        set.addFont("fonts/NotoNaskhArabic-Regular.ttf");
        set.addFont("fonts/NotoSansTamil-Regular.ttf");
        set.addFont("fonts/FreeSans.ttf");
        document.setFontProvider(new FontProvider(set));
        document.setProperty(Property.FONT, new String[]{"MyFontFamilyName"});
        for (final String source : sources) {
            final File xmlFile = new File(source);
            final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            final DocumentBuilder builder = factory.newDocumentBuilder();
            final org.w3c.dom.Document doc = builder.parse(xmlFile);
            final Node element = doc.getElementsByTagName("text").item(0);
            final Paragraph paragraph = new Paragraph();
            final Node textDirectionElement = element.getAttributes().getNamedItem("direction");
            boolean rtl = textDirectionElement != null && textDirectionElement.getTextContent()
                    .equalsIgnoreCase("rtl");
            if (rtl) {
                paragraph.setTextAlignment(TextAlignment.RIGHT);
            }
            paragraph.add(element.getTextContent());
            document.add(paragraph);
        }
        document.close();
        pdfDocument.close();
        writer.close();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
string[] sources = new string[] { "english.xml", "arabic.xml", "hindi.xml", "tamil.xml" };
            PdfWriter writer = new PdfWriter(DEST);
            PdfDocument pdfDocument = new PdfDocument(writer);
            Document document = new Document(pdfDocument);
            FontSet set = new FontSet();
            set.AddFont("NotoNaskhArabic-Regular.ttf");
            set.AddFont("NotoSansTamil-Regular.ttf");
            set.AddFont("FreeSans.ttf");
            document.SetFontProvider(new FontProvider(set));
            document.SetProperty(Property.FONT, new String[] { "MyFontFamilyName" });
            foreach (string source in sources)
            {
                XmlDocument doc = new XmlDocument();
                var stream = new FileStream(source, FileMode.Open);
                doc.Load(stream);
                XmlNode element = doc.GetElementsByTagName("text").Item(0);
                Paragraph paragraph = new Paragraph();
                XmlNode textDirectionElement = element.Attributes.GetNamedItem("direction");
                Boolean rtl = textDirectionElement != null && textDirectionElement.InnerText.Equals("rtl");
                if (rtl)
                {
                    paragraph.SetTextAlignment(TextAlignment.RIGHT);
                }
                paragraph.Add(element.InnerText);
                document.Add(paragraph);
            }
            document.Close();

Input

An image displaying four different languages in a single PDF

 

 

 

 

Resource files

Output

 

Principales fonctionnalités

Principales fonctionnalités de iText 7 pdfCalligraph

Les créateurs de PDF disponibles sur le marché ont souvent des problèmes d'interaction entre les caractères ou les systèmes d'écriture tels que la famille Indic Devanagari, et avec les caractères composés difficiles à séparer dans le texte, ce qui complique l'extraction de texte. pdfCalligraph peut vous aider.

Core capabilities development icon
Exploitation des fonctionnalités de police avancées

Par exemple : fonctionnalités OpenType, crénage, ligatures et substituts de glyphes.

Core capabilities development icon
Assistance transparente pour de nombreuses langues

Y compris les langues qui utilisent des alphabets brahmi, arabe et hébreu.

Core capabilities development icon
Détection automatique du système de langue/d'écriture

Les fonctionnalités de police requises sont activées et appliquées automatiquement. La configuration manuelle est possible. pdfCalligraph s'intègre parfaitement avec iText 7 Core et pdfHTML.

Core capabilities development icon
Alignement typographique pour tous les systèmes d'écriture

Alignement à gauche, à droite, centré et justifié.

Avantages

Pourquoi utiliser iText 7 pdfCalligraph ?

Les documents en PDF reposent généralement sur des polices de base pour les processus automatisés de traitement par lots. Cela signifiait que vous ne pouviez pas utiliser les fonctions de typographie avancées telles que les polices, les systèmes d'écriture complexes avec texte superposé, les fonctions de script ou les langues nécessitant une réorganisation du texte telles que l'arabe, le tamoul, le kannada, etc. Aujourd'hui, pdfCalligraph vous ouvre tout un monde de possibilités en vous permettant de desservir toutes les régions du globe. 

pdfCalligraph icon svg
Soutien pour votre entreprise internationale

Utilisez vos processus documentaires pour plusieurs langues sans avoir à adapter votre programmation PDF. Échangez des formats de données non propriétaires entre des utilisateurs de cultures différentes. Créez de grands lots de documents PDF dans différents systèmes d'écriture. 

pdfCalligraph icon svg
Conversion soignée en PDF de textes en langues utilisant d'autres alphabets

Utilisez dans votre fichier PDF des polices et des caractères spéciaux dans plusieurs langues telles que le kannada, l’arabe, le tamoul et bien d’autres encore. 

pdfCalligraph icon svg
Détection automatique des systèmes d'écriture au format PDF

Détecte le système d'écriture utilisé pour la création des fichiers PDF. Effectue des substitutions de glyphes en fonction d'informations spécifiques au script et à la police. Ajoute des informations sur le sens de lecture, par exemple pour la langue arabe qui se lit de droite à gauche.

Contact

Vous avez d'autres questions ?

Nous y répondrons avec plaisir. Contactez-nous et nous reviendrons vers vous sous peu.

Contactez-nous
Restez à jour

Rejoignez plus de 11 000 abonnés et devenez un expert iText PDF en vous tenant au courant de nos nouveaux produits, mises à jour, conseils, solutions techniques et événements.

Abonnez-vous