2013-05-22 18 views
-1

아랍어 문자로 된 PDF를 내 웹 페이지의 축소판으로 사용할 이미지로 변환하려고합니다. PDFrendererPDFBox 변환 후 모두 아랍어 문자를 보관할 수 없었으므로 JMagick을 사용하여 만족스러운 결과를 얻을 수있었습니다. 그러나 문제는 dll 및 기타 종속성을 사용한다는 것입니다. 제 응용 프로그램 설치 프로그램에 추가 할 권한이 없습니다.데이터 손실없이 아랍어 pdf를 이미지로 변환

가장 좋은 지불 솔루션이 무엇인지, 내가 놓친 것보다 나은 오픈 소스 솔루션이 있습니까?

감사

여기 내 PDF 모의 파일의이 :

pdf file

+1

사용하시는 샘플 PDF 파일을 제공해주십시오. 이미지로 변환되기 전 사전 처리 단계에서 수정해야하는 PDF에 대한 특이성이있을 수 있습니다. – mkl

+0

내가 사용하고있는 PDF 파일에 가입했습니다. – Genjuro

+0

imagemagick 's : convert result.pdf result.png - 리눅스에서 작동합니다 (Windows 버전 convert.exe가 있습니다. 윈도우의 convert.exe와 혼동하지 마십시오). –

답변

0

는 코멘트를 위해 너무 오래이기 때문에 (나는 그것이 단순히 주어진 시료의 분석에도 불구하고, 대답으로이 게시 PDF)

실제로 PDFBox에서 샘플 PDF를 렌더링하려고 할 때 최소한 두 가지 문제가 있습니다.

  1. 모든 라틴 문자와 모든 숫자의 경우 원래 글꼴이 기본 글꼴로 대체됩니다. Cf. 이런 로그 출력 :

    23.05.2013 09:15:48 org.apache.pdfbox.pdmodel.font.PDSimpleFont drawString 
    WARNUNG: Changing font on <H> from <Arial> to the default font 
    

    이것은 내장 폰트에 사용할 수있는 매우 제한된 정보와 함께 텍스트를 렌더링 PDFBox '방식에 기인한다.

    PDFBox는 먼저 텍스트 정보를 유니 코드로 변환 한 다음 이러한 유니 코드 문자를 렌더링해야하는 방식으로 JRE의 텍스트 렌더링 기능을 사용합니다. 그러나 삽입 된 글꼴에는 인코딩 또는 매핑 정보가 포함되어 있지 않습니다.

    PDFBox에서 일부 기본 인코딩을 사용하는 대체 방식을 사용하기 때문에 실수로 유니 코드로 변환하는 데 성공합니다. JRE 코드에는 유니 코드 문자에 사용할 글리프 (glyph) 정보가 없으므로 렌더링에 실패합니다. 모든 아랍어 텍스트를 들어

  2. 가 포함 된 글꼴은 읽을 수 없습니다, 따라서, 굴림 대신 사용됩니다

    23.05.2013 09:15:48 org.apache.pdfbox.pdmodel.font.PDCIDFontType2Font getawtFont 
    INFO: Can't read the embedded font HYMDAA+ArialMT-Identity-H 
    23.05.2013 09:15:58 org.apache.pdfbox.pdmodel.font.PDType0Font getawtFont 
    INFO: Using font Arial instead of HYMDAA+ArialMT-Identity-H 
    

    여기에 이미 포함 된 글꼴을 구문 분석 실패합니다. 나는 JRE 코드가 포함 된 글꼴 정말 다소 지나치게 민감 여기 여부를인지 모르는 따라서, 글꼴 내부와 직결 된 매우 지식이 아니에요 및

    java.awt.FontFormatException: Font name not found 
        at sun.font.TrueTypeFont.init(TrueTypeFont.java:527) 
        at sun.font.TrueTypeFont.<init>(TrueTypeFont.java:162) 
        at sun.font.FontManager.createFont2D(FontManager.java:2474) 
        at java.awt.Font.<init>(Font.java:570) 
        at java.awt.Font.createFont(Font.java:896) 
        at org.apache.pdfbox.pdmodel.font.PDCIDFontType2Font.getawtFont(PDCIDFontType2Font.java:81) 
        ... 
    

    : 내부적으로 Exception는 JRE 코드에 의해 발생합니다 부서진. 그래도 비린내가 나는 것 같습니다. PDFBox의 단점 같은

1 호 외모 (유니 코드 문자 모양에서 왕복을 할 수 있기를 기대하고 돌아 손실이 PDF의 세계에서 아주 순진한없이 문자 모양). 따라서 덜 순진한 방법을 사용하는 다른 렌더러는이 문제의 영향을받는 텍스트를 제대로 표시하는 데 성공할 가능성이 큽니다.

문제 2는 많은 렌더러에서 장애가 될 수 있습니다.

더 완벽한 글꼴 정보를 포함하도록 PDF 작성 프로세스를 조정할 것을 제안합니다.

0

ABCpdf .NET에서는 이러한 유형의 변환을 수행합니다.

아랍어, 유형 3 글꼴, 그라데이션, 비정상적인 색 공간, 별색 및 포스트 스크립트 기능과 같이 일반적으로 지원되지 않는 기능을 모두 지원합니다.

다음은 ABCpdf .NET을 사용하여 PDF를 PNG로 변환 한 것입니다. enter image description here

대답은 ABCpdf .NET 소프트웨어 구성 요소에서 작동하므로 내 대답에는 ABCpdf를 기반으로하는 개념이 포함될 수 있습니다. 그것은 내가 아는 바로 그 것이다. :-)

+0

그는 java :에 관해서 물었다. – Yassering