pdfCalligraph

제품 소개

iText 7 pdfCalligraph

pdfCalligraph는 PDF에서 고급 조판 기능을 사용할 수 있는 Java 및 C#(.NET)용 iText 7 애드온입니다. 또한, 국제적 언어와 문자로 문서 워크플로를 확장할 수 있으며, 정확한 렌더링이 가능하고 데이터 처리에 적합합니다.

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

 

주요 기능

iText 7 pdfCalligraph의 핵심 성능

표준 PDF 생성 도구는 문자 상호작용이나 아랍어, 히브리어, 힌디어 또는 태국어 등의 문자, 커닝, 합자, 상형 문자 대체 등을 처리할 때 문제를 일으킵니다. pdfCalligraph는 간단하게 이 모든 문자를 처리할 뿐만 아니라 OpenType 기능을 사용하여 각 언어와 문자에서 iText PDF 기능을 완벽히 사용할 수 있도록 지원합니다. 복합 문자가 있는 문자에서 텍스트도 추출할 수 있습니다. pdfCalligraph는 또한 Java 또는 .NET(C#)에서 프로그래밍을 수정할 필요가 없습니다.

iText
고급 폰트 기능 활용하기

OpenType 기능, 커닝(Kerning), 합자, 첨자 등.

iText
여러 언어를 위한 투명한 지원

브라흐미 문자, 아랍어, 히브리 활자를 사용하는 언어 포함.

iText
언어/표기 체계 자동 감지

필수 폰트 기능이 자동으로 활성화 및 적용됩니다. 수동 구성이 가능합니다. pdfCalligraph는 iText 7 Core 및 pdfHTML과 매끄럽게 통합됩니다.

iText
모든 표기 체계에 대한 타이포그래피 정렬

왼쪽 정렬, 오른쪽 정렬, 중앙 정렬 및 양쪽 정렬.

기능 및 이점

iText 7 pdfCalligraph를 선택해야 하는 이유는 무엇입니까?

pdfCalligraph는 가능성의 세계를 열어 모든 대륙에서 사업을 운영할 수 있도록 지원합니다.  개인 또는 기업이 어디에 있든 pdfCalligraph는 사용자, 사용자의 현지 언어, 문자에 완전한 PDF 기능을 제공합니다. 

pdfCalligraph icon svg
국제 비즈니스 지원

PDF 프로그래밍을 조정할 필요 없이 여러 언어를 위한 문서 프로세스를 이용합니다. 여러 문화권의 사용자 사이에 비독점 데이터 형식을 교환합니다. 다양한 표기 체계로 대량의 PDF 문서를 생성합니다. 

pdfCalligraph icon svg
특수 언어 PDF로 깔끔한 변환

PDF 내의 칸나다어, 아랍어, 타밀어 등과 같은 여러 언어에 특수 글꼴 및 문자를 사용합니다. 

pdfCalligraph icon svg
PDF의 표기 체계 자동 감지

PDF 생성에 사용된 표기 체계를 감지합니다. 활자 및 글꼴 특정 정보를 기반으로 형태를 대입합니다. 오른쪽에서 왼쪽으로 읽는 아랍어와 같이 읽기 순서에 관한 정보를 추가합니다.

문의

문의가 해결되지 않았습니까? 

저희가 도와드리겠습니다. 연락해 주시면 빠르게 답변해 드리겠습니다.

문의하기
최신 정보를 받아보세요

11,000명 이상의 가입자와 함께 새로운 제품, 업데이트, 팁, 기술 솔루션 및 기회에 대한 최신 정보를 받아보시면서 iText PDF 전문가가 되어보세요.

지금 구독하기