pdfCalligraph

Introduction

iText 7 pdfCalligraph

pdfCalligraph est un module complémentaire d’iText 7 pour Java et C# (.NET) qui vous permet de déverrouiller des fonctionnalités typographiques avancées dans les PDF. Il vous permet également d’étendre votre flux de travail de documents avec des langues étrangères et des systèmes d’écriture, qui intègrent un rendu précis et sont 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é rencontrent des problèmes avec les interactions de caractères ou les systèmes d’écriture comme l’arabe, l’hébreu, l’hindi ou le thaï, et avec le crénage, les ligatures et les substitutions de glyphes. pdfCalligraph gère facilement tous ces systèmes d’écriture, et à l’aide des fonctionnalités OpenType, vous donne accès à l’éventail complet des fonctionnalités PDF d’iText dans votre langue et votre système d’écriture, y compris l’extraction de texte pour les systèmes d’écriture avec des caractères composés. Un autre avantage de pdfCalligraph est que vous n’avez pas à modifier votre programmation en Java ou en .NET (C#).

iText
Exploitation des fonctionnalités de police avancées

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

iText
Assistance transparente pour de nombreuses langues

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

iText
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.

iText
Alignement typographique pour tous les systèmes d'écriture

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

Avantages

Pourquoi utiliser iText 7 pdfCalligraph ?

pdfCalligraph ouvre un monde de possibilités qui vous permet de prêter vos service aux entreprises sur tous les continents. Où que vous ou votre entreprise vous trouviez, pdfCalligraph vous offre toutes les possibilités de nos fonctionnalités PDF dans votre langue locale et votre système d’écriture. 

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