2017-11-30 12 views
0

iText5에는 showText(String)showTextKerned(String)이라는 클래스와 PdfContentByte이 있으며 커닝을 사용하지 않고 텍스트를 표시합니다. iText7에서 PdfCanvasPdfContentByte에 해당하는 클래스로 보이며 showTextKerned(String) 메서드가 없습니다.iText7 - iText7 및 pdfCalligraph 모듈의 저급 API (PdfCanvas)로 텍스트를 어떻게 표시 할 수 있습니까?

저수준 API를 사용하여 iText7에서 텍스트를 표시하는 다른 방법이 있습니까?

답변

1

빌딩 블록 튜토리얼의 Chapter 2으로 이동하여 해당 장의 맨 아래로 스크롤하십시오.

내가 아랍어 커닝/지원을 사용하여 시도했다

, 인도어는/합자,하지만 작동하지 않습니다

는 다음과 같은 질문 항목을 찾을 수 있습니다. 왜 안돼?

메서드는 CLASSPATH에 활판 인쇄 Jar가없는 경우 아무런 영향을주지 않습니다. 타이포 그라피 항아리가없는 경우 일반 텍스트와 캐닝 된 텍스트 사이에는 의 차이가 없습니다. 힌디어 또는 아랍어를 으로 렌더링하려면 활자체 병 없이 텍스트가 올바르게 렌더링되지 않습니다. 귀하가 CLASSPATH에 타이포 그라피 항아리를 추가하지 않으면 합자가 만들어지지 않습니다.

그래서 귀하의 질문에 대한 대답은 : 당신은 당신이 작업하는 방법에 대한 pdfCalligraph add-on 필요하지만 iText를 7 showTextAlignedKerned() 방법을 사용하여 절대 위치에 커닝 텍스트를 추가 할 수 있습니다.

커닝, 합자 등 계산 ... 커닝, 합자 등없이 내용을 쓰는 것보다 더 많은 CPU가 필요합니다. 그래서 우리는 커닝, 합자 등을 필요로하지 않는 다른 사용자의 기능을 분리했습니다. ... 속도가 느려지지 않습니다. 이러한 사용자는 추가 기능이 필요하지 않으며 이는 또한 MBytes 나 DLL이 필요 없다는 것을 의미합니다.

또한 폐쇄 형 소스 환경에서 라이센스를 지불하지 않고 iText AGPL 버전을 사용하는 여러 회사를 만났기 때문에 pdfCalligraph 추가 기능 소스를 닫았습니다. Google은 이러한 회사 중 일부 (독일 등)를 성공적으로 소송했지만 법적 구속력이없는 회사도있었습니다 (예 : 합자가 필요한 언어가있는 국가). 이러한 회사로 인해 pdfCalligraph 애드온 폐쇄 소스를 유지하기로 결정했습니다. 힌디어, 타밀어, 텔루구 어, 칸나다어와 같은 언어를 지원하기 위해 투자 한 금융 투자가 너무 커서 해당 회사를 미끄러지게 만들 수 없었습니다. 이 결정은 iText에 대한 자신의 작업에 대한 급여를 지불 한 개발자의 이익을 위해 이루어진 것입니다. 살아있는 코드를 작성하는 모든 개발자는 그 관점을 이해할 수 있다고 확신합니다. 그렇지 않다면, 그러한 개발자는 고용주에게 월급을 환급해야한다는 것이 제 생각입니다.