iText 7 pdfCalligraph
pdfCalligraph ermöglicht es Ihnen, erweiterte Workflow-Funktionen in der PDF-Typografie freizuschalten. Es erweitert Ihren Dokumenten-Workflow mit globalen Sprachen und Schriftsystemen, die geeignete PDF-Rendering-Bibliotheken, Redaktionsoptionen und mehr beinhalten, die für die Datenverarbeitung geeignet sind.
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
Kernfunktionen von iText 7 pdfCalligraph
Standard-PDF-Ersteller haben oft Probleme mit Zeicheninteraktionen oder Schriftsystemen wie der Indic Devanagari-Familie und mit zusammengesetzten Zeichen, die im Text schwer zu trennen sind, was die Textextraktion erschwert. pdfCalligraph kann helfen.
Nutzen Sie die erweiterten Schriftartenfunktionen zu Ihrem Vorteil
Beispielsweise OpenType-Funktionen, Kerning, Ligaturen und Glyphenersätze.
Transparente Unterstützung für viele Sprachen
Einschließlich Sprachen, die brahmische, arabische und hebräische Schriften verwenden.
Automatische Erkennung des Sprach-/Schreibsystems
Die erforderlichen Schriftsatzfunktionen sind aktiviert und werden automatisch angewendet. Eine manuelle Konfiguration ist möglich. pdfCalligraph lässt sich nahtlos in iText 7 Core und pdfHTML integrieren.
Typografische Ausrichtung für alle Schreibsysteme
Linksbündig, rechtsbündig, zentriert und bündig ausgerichtet.
Warum iText 7 pdfCalligraph verwenden?
PDF-Dokumente basieren in der Regel auf grundlegenden Schriftarten für automatisierte Batch-Prozesse. Dies bedeutete, dass Sie keine erweiterten Typografie-Funktionen wie Schriftarten, komplexe Schriftsysteme mit überlappendem Text, Skriptfunktionen oder Sprachen, die eine Neuordnung von Texten erfordern, wie Arabisch, Tamilisch, Kannada und mehr, verwenden konnten. Heute eröffnet pdfCalligraph eine Welt voller Möglichkeiten, mit der Sie alle Regionen weltweit bedienen können.
Unterstützung Ihres internationalen Geschäfts
Nutzen Sie Ihre Dokumentenprozesse für mehrere Sprachen, ohne Ihre PDF-Programmierung anpassen zu müssen. Austausch von nicht-proprietären Datenformaten zwischen Nutzern vieler Kulturen. Erstellen Sie große Mengen von PDF-Dokumenten in verschiedenen Schriftsystemen.
Geschickte Konvertierung von speziellen Sprachen in PDF
Verwenden Sie spezielle Schriftfamilien und Zeichensätze in verschiedenen Sprachen wie Kannada, Arabisch, Tamilisch und viele mehr in Ihrem PDF.
Automatische Erkennung von Schriftsystemen im PDF-Format
Erkennen Sie, welches Schriftsystem bei der PDF-Erstellung verwendet wird. Erstelle Glyphen-Substitionen auf der Grundlage von skript- und schriftartspezifischen Informationen. Fügen Sie Informationen über die Lesereihenfolge hinzu, z. B. Arabisch, das von rechts nach links gelesen wird.