iText 7 pdfCalligraph
pdfCalligraph le permite desbloquear características avanzadas de flujo de trabajo en tipografía PDF. Expande su flujo de trabajo de documentos con lenguajes globales y sistemas de escritura apropiados para el procesamiento de datos, como bibliotecas de procesamiento de PDF adecuadas, opciones de ocultamiento, y más.
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 |
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
Output
Resources
Here you will find the needed resources to install and use pdfCalligraph.
Other resources
Capacidades esenciales de iText 7 pdfCalligraph
Los creadores de PDF existentes a menudo tienen problemas con las interacciones de los caracteres o los sistemas de escritura como la familia Indic Devanagari, y con los caracteres compuestos que son difíciles de separar en el texto, lo que dificulta su extracción. pdfCalligraph puede ayudar.
Aproveche las características avanzadas de fuente
Tales como características de OpenType, interletraje, ligaduras y sustitutos de glifos.
Soporte transparente para una gran variedad idiomas
Incluidos los idiomas que utilizan scripts en bráhmico, árabe y hebreo.
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.
Alineación tipográfica para todos los sistemas de escritura
Alineación a la izquierda, a la derecha, centrada y justificada.
¿Por qué usar iText 7 pdfCalligraph?
Los documentos PDF normalmente se han basado en fuentes básicas para procesos por lotes automatizados. Esto significaba que no podía usar características de tipografía avanzadas, como características de fuente, sistemas de escritura complejos con texto superpuesto, funciones de script, o idiomas que requieren un reordenamiento del texto, como el árabe, el tamil, el canarés y más. Hoy en día, pdfCalligraph abre un mundo de posibilidades que le permiten brindar sus servicios a todas las regiones, en todo el mundo.
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.
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.
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.