iText 7 pdfCalligraph
pdfCalligraph ist ein Add-On von iText 7 für Java und C# (.NET), mit dem Sie erweiterte typografische Funktionen in PDF freischalten können. Außerdem können Sie Ihren Dokument-Workflow mit globalen Sprachen und Schriftsystemen erweitern, die präzises Rendering beinhalten und 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
Informationsquellen
Hier finden Sie die benötigten Ressourcen zur Installation und Nutzung von pdfCalligraph.
Other resources
Kernfunktionen von iText 7 pdfCalligraph
Standard-PDF-Ersteller haben Probleme mit Zeicheninteraktionen oder Schreibsystemen wie Arabisch, Hebräisch, Hindi oder Thailändisch und im Hinblick auf Kerning, Ligaturen und Glyphenersätze. pdfCalligraph beherrscht all diese Schriftsysteme mit Leichtigkeit, und durch die Verwendung von OpenType-Funktionen eröffnet es Ihnen die gesamte Palette der iText PDF-Funktionalitäten in Ihrer Sprache und Ihrem Schriftsystem. Dazu gehört sogar die Textextraktion für Schriftsysteme mit zusammengesetzten Zeichen. Ein weiterer Vorteil von pdfCalligraph ist, dass Sie Ihre Programmierung in Java oder .NET (C#) nicht anpassen müssen.
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?
pdfCalligraph eröffnet Ihnen eine Welt voller Möglichkeiten und lässt Sie Unternehmen auf allen Kontinenten bedienen. Unabhängig davon, wo Sie oder Ihr Unternehmen ansässig sind, pdfCalligraph erschließt Ihnen die volle Leistungsfähigkeit unserer PDF-Funktionalitäten, in Ihrer Landessprache und Ihrem Schriftsystem.
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.