pdfCalligraph

Introducción

iText 7 pdfCalligraph

pdfCalligraph es un complemento de iText 7 para Java y C# (.NET) que permite desbloquear funciones tipográficas avanzadas en PDF. También permite ampliar los flujos de trabajo orientados a documentos con otros idiomas y sistemas de escritura. Los documentos tendrán la calidad de representación habitual y también serán adecuados para el procesamiento de datos.

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

 

Características clave

Capacidades esenciales de iText 7 pdfCalligraph

Los generadores de PDF comerciales no manejan correctamente las interacciones con caracteres o sistemas de escritura tales como el árabe, hebreo, hindi o tailandés, y también tienen problemas con el interletraje, las ligaduras ni los sustitutos de glifos. pdfCalligraph gestiona correctamente todos esos sistemas de escritura y, al hacer uso de las funciones OpenType, pone a su disposición toda la gama de funcionalidades PDF incorporadas en iText para su idioma y su sistema de escritura específicos. Esto también incluye la extracción de textos de sistemas de escritura que emplean caracteres compuestos. Otra ventaja de pdfCalligraph es que no es necesario adaptar el estilo ni la metodología de programación en Java o .NET (C#).

iText
Aproveche las características avanzadas de fuente

Tales como características de OpenType, interletraje, ligaduras y sustitutos de glifos.

iText
Soporte transparente para una gran variedad idiomas

Incluidos los idiomas que utilizan scripts en bráhmico, árabe y hebreo.

iText
Detección automática de idioma/sistema de escritura

Las características de fuente requeridas se habilitan y aplican automáticamente. Posibilidad de configuración manual. pdfCalligraph se integra perfectamente con iText 7 Core y pdfHTML.

iText
Alineación tipográfica para todos los sistemas de escritura

Alineación a la izquierda, a la derecha, centrada y justificada.

Beneficios

¿Por qué usar iText 7 pdfCalligraph?

pdfCalligraph abre literalmente todo un mundo de posibilidades, ya que con este producto usted podrá dar servicio a empresas de todo el globo. Dondequiera que usted o su empresa se encuentren, con pdfCalligraph dispondrá de toda la potencia de nuestras funciones PDF en el idioma local y con el sistema de escritura que necesite en cada momento. 

pdfCalligraph icon svg
Apoyo para su negocio internacional

Use sus procesos de documentos para varios idiomas sin necesidad de ajustar su programación de PDF. Intercambie formatos de datos sin derecho de propiedad entre usuarios de varias culturas. Cree grandes lotes de documentos PDF en distintos sistemas de escritura. 

pdfCalligraph icon svg
Conversión correcta de archivos PDF en idiomas especiales

Use fuentes y caracteres especiales en varias lenguas, tales como el canarés, árabe, tamil y muchos otros en su PDF. 

pdfCalligraph icon svg
Detección automática de sistemas de escritura en PDF

Detecta qué sistema de escritura se está usando en la creación del PDF. Reemplace  glifos según la información específica de la fuente y texto. Agregue información sobre el orden de lectura, como el árabe que se lee de derecha a izquierda.

Contacto

¿Aún tiene preguntas? 

Estamos encantados de responder a sus preguntas. Comuníquese con nosotros y le responderemos a la brevedad.

Contáctenos
Manténgase actualizado

Únase a más de 11,000 suscriptores y conviértase en un experto en iText PDF al mantenerse al día con nuestros nuevos productos, actualizaciones, consejos, soluciones técnicas y eventos.

Suscríbase ahora