pdfCalligraph

제품 소개

iText 7 pdfCalligraph

pdfCalligraph를 통해 PDF 타이포그래피의 진보된 워크플로 기능을 열 수 있습니다. 적절한 PDF 렌더링 라이브러리, 편집 옵션 등 데이터 프로세싱에 적합한 글로벌 언어 및 표기 체계로 문서 워크플로를 확장합니다.

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가 도와드리겠습니다. .

Core capabilities development icon
고급 폰트 기능 활용하기

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

Core capabilities development icon
여러 언어를 위한 투명한 지원

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

Core capabilities development icon
언어/표기 체계 자동 감지

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

Core capabilities development icon
모든 표기 체계에 대한 타이포그래피 정렬

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

기능 및 이점

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

자동화된 배치 프로세스의 경우, PDF 문서는 일반적으로 기본 폰트에 의존합니다. 이는 폰트 기능이나 겹치는 텍스트가 있는 복잡한 표기 체계, 스크립트 기능, 아랍어나 타밀어, 칸나다어 등과 같이 텍스트 순서 변경이 필요한 언어와 같은 고급 타이포그래피 기능을 이용할 수 없다는 것을 의미합니다. 오늘 pdfCalligraph는 가능성의 문을 열고 전 세계 모든 지역에 서비스를 제공할 수 있도록 도와드립니다. 

pdfCalligraph icon svg
국제 비즈니스 지원

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

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

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

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

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

문의

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

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

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

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

지금 구독하기