아랍어 및 히브리어와 같은 RTL 언어뿐만 아니라 태국어 및 Devanagari와 같은 복잡한 스크립트로 PDF를 작성하는 데 C++에서 유용한 좋은 API를 알고 있습니까? 우리는 현재 Tracker 's PDF API를 사용하고 있습니다. 그러나 그것은 LTR 스크립트 이외의 것을 처리하지 못합니다. RTL 지원은 거의 2 년 동안이 약속이 약속 되었기 때문에 RTL 지원이 그다지 우선 순위가 아닌 것처럼 보입니다. 출현.RTL 언어 및 복잡한 스크립트를 처리하는 C++로 PDF 작성하기
1
A
답변
1
상용 Windows 전용 라이브러리가 유효한 옵션 인 경우 Amyuni PDF Creator ActiveX으로 시도 할 수 있습니다. 라이브러리는 PDF 파일을 작성하거나 편집하기위한 사용자 정의 API를 제공합니다. variant structure의 유니 코드로 먼저 포장하는 경우 text object에 모든 종류의 텍스트를 설정할 수 있어야합니다.
응용 프로그램이 이미 Windows GDI를 사용하여 인쇄를 지원하는 경우이 코드를 다시 사용하고 Amyuni PDF Converter으로 시도 할 수 있습니다. 이것은 PDF 파일을 출력으로 생성하고 인쇄에서 완전히 제어 할 수있는 Microsoft 인증 가상 프린터 드라이버입니다. 신청.
Amyuni PDF Converter의 경우 Amyuni PDF Converter의 경우 라이브러리와 함께 제공되는 C++ 헤더 파일을 사용하거나 동일한 기능을 제공하는 COM 클래스로 사용할 수 있습니다 . 자세한 내용은 documentation에서 확인할 수 있습니다.
라이브러리에는 C#, VB.Net 및 C++ 용 샘플 코드가 제공됩니다.
#include "stdafx.h"
#include "CDIntf450.h"
#pragma comment (lib, "CDIntf450.lib")
#define AMYUNI_PRINTER "My PDF Converter"
#define AMYUNI_LICENSE "Amyuni Developer Evaluation"
#define AMYUNI_ACTIVATION_CODE "0ABCCD...567B3"
//Get a handle to Amyuni PDF Converter
HANDLE hPrinter = DriverInit(AMYUNI_PRINTER);
if(hDC == NULL){ /* error handling */ }
//Set the Amyuni PDF Converter as the default printer
CDISetDefaultPrinter (hPrinter);
//Configure the path for the output file
SetFileNameOptions (hPrinter, NoPrompt | UseFileName);
SetDefaultFileName (hPrinter, _T("c:\\temp\\PrintSomeThing.pdf"));
// Activate your license key
EnablePrinter (hPrinter, AMYUNI_LICENSE, AMYUNI_ACTIVATION_CODE);
HDC hDC = CreateDC("WINSPOOL" , AMYUNI_PRINTER, NULL, NULL);
if(hDC == NULL){ /* error handling */ }
DOCINFO di;
::ZeroMemory (&di, sizeof(DOCINFO));
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = _T("myDocTitle");
StartDoc(hDC, &di);
StartPage(hDC);
//Print something
TextOutW(hDC, 200, 200, L"هذا هو اختبار"), lstrlenW (L"هذا هو اختبار")));
TextOut(hDC, 0, 400, _T("My PDF App"), lstrlen (_T("My PDF App")));
EndPage(hDC);
EndDoc(hDC);
//Clean Up
DeleteDC(hDC);
RestoreDefaultPrinter(hPrinter);
SetFileNameOptions (hPrinter, 0);
DriverEnd(hPrinter);
면책 조항 1 : 다음은 샘플 중 하나의 요약 버전입니다 나는 현재 Amyuni 기술에 대한 작동합니다.
면책 조항 2 : 샘플 코드의 아랍어 텍스트는 Google 번역에서 가져온 것이므로 잘못 해석하는 경우 사전에 사과드립니다.
관련 문제
- 1. sIFR 및 RTL 언어
- 2. Kendo RTL 언어 용 PDF 내보내기 문제
- 3. CKEditor RTL 언어
- 4. FIFO 큐를 C로 작성하기
- 5. C로 큰 파일 작성하기
- 6. 복잡한 모양을 CSS로 작성하기
- 7. 리눅스에 언어 프로그램 작성하기
- 8. ANTLR에서 언어 변환기 작성하기
- 9. C#에서 확인하는 방법은 복잡한 스크립트 및 rtl 언어 용 파일입니까?
- 10. Node.js로 pdf 필드 작성하기
- 11. Objective C로 PDF 작업하기
- 12. Objective-C로 PDF 작업하기
- 13. asp.net MVC에서 복잡한 페이지 작성하기
- 14. Highchart 자바 스크립트를 작성하기
- 15. c로 컴파일되는 고급 시스템 언어?
- 16. Sitecore 기본 언어 항목 작성하기
- 17. PDF 문서 언어 감지
- 18. 내 자신의 파이핑 함수를 C로 작성하기
- 19. FUSE를 사용하여 C로 간단한 파일 시스템 작성하기
- 20. Python을 사용하여 STDOUT에 PDF 작성하기
- 21. iTextSharp로 PDF 양식 필드 작성하기
- 22. * nix의 경우 C로 스레드 안전 시간대 대기열 작성하기
- 23. RTL 언어가 android 및 리소스 한정자로 지원됩니다.
- 24. C로 전원 쉘 스크립트를 변환
- 25. GTK 파이썬 스크립트를 C로 변환
- 26. Python 스크립트를 Objective-C로 변환
- 27. Perl CAM : PDF 추출 pdf 언어
- 28. 테이블에서 행을 선택하기위한 도메인 특정 언어 작성하기
- 29. RTL
- 30. rtl 및 ltr 방향을 사용하는 다국어 사이트
감사합니다 - 상용 라이브러리는 정상입니다. GDI 호출과 함께 PDF 변환기를 사용하여 처음부터 PDF 파일을 만드는 방법을 보여주는 C++ 예제를 가르쳐 주시겠습니까? – arksoft
@arksoft 자세한 내용으로 답변을 업데이트했습니다. – yms