2014-09-02 4 views
-1
Document doc = new Document(iTextSharp.text.PageSize.LETTER.Rotate(), 10, 10, 5, 5); 
      string nazivPDFa = txt_datumFiskalnogIsecka.Text +" "+ txt_nazivKompanije.Text; 
      PdfWriter pdf = PdfWriter.GetInstance(doc, new FileStream(nazivPDFa + ".pdf", FileMode.CreateNew)); 
      doc.Open(); 

Paragraph klijent = new Paragraph(ispisiKlijenta.Text); 

PdfPTable tabelaNK = new PdfPTable(1); 
PdfPCell kl = new PdfPCell(new Phrase(klijent)); 
kl.BorderColor = BaseColor.BLACK; 
tabelaNK.AddCell(kl); 
doc.Add(tabelaNK); 

나는 itextSharp와 함께 PDF 문서를 생성하고 난 세르비아에서 일부 텍스트 PDF를 채울 때, 그는 나에게 S, C, C, đ, ž 같은 문자를 보여 나던 .PDF 문서 ITextsharp의 C#을위한 CurrentCulture를 설정하는 방법

예 : "nešto"라고 썼고 "neto"를 얻습니다.

나는 그 PDF에 대해 많은 생각을 가지고 있으며, 현재의 모든 문화에 모든 요소를 ​​부여하는 데 영원히 걸릴 것입니다.

+1

호기심에서 벗어났습니다.이 'CurrentCulture'는 무엇을 말하고 있습니까? * encoding *이라는 단어를 번역하려는 시도입니까? 기존 용어입니까? iTextSharp 또는 .NET에 특정한 것입니까? –

+0

@ReadyToWork, 'CurrentCulture'의 .Net 개념 또는 현지화가 PDF 관점에서 존재하지 않는다면 "텍스트"만 있으면됩니다. 이와 함께 귀하의 양식 (글꼴 포함)이나 귀하의 지역 환경이 가지고있는 모든 설정이 중요합니다. 하지만 문자열을 바이트로 변환하거나 직렬화하는 것과 같은 이상한 일을하지 않는 한 유니 코드로 안전해야합니다. iTextSharp는 유니 코드 문자열을 가져 와서 적절한 바이트 시퀀스를 올바르게 만듭니다. 그러나이를 위해 Bruno가 말한 것처럼 문자에 대한 글리프가있는 글꼴을 수동으로 제공해야합니다. Arial Unicode MS –

+0

나는 똑같은 문제가 있었는데 대답했다. 대답 : http://stackoverflow.com/questions/33699295/croatian-letters-in-itextsharp –

답변

1

Paragraph을 만들 때 글꼴을 사용하고 있지 않습니다. 이 경우 표준 유형 1 글꼴 인 Helvetica가 사용되며 포함되지 않습니다. Helvetica는 제한된 문자 집합 만 지원하기 때문에 글리프가 나타나지 않습니다. 이것은 the official documentation에 잘 설명되어 있습니다. 걷는 법을 배우기 전에 달려 가야하는 것은 유감입니다.

몇 가지 게임을 할 수 있습니다.

  1. 첫째, 당신은 인코딩 ispisiKlijenta.Text이 올바른지 확인해야합니다. 예를 들어, 해당 문자열은 CP1250 또는 Unicode입니까? KlijenT.Add("Tekući račun: " +txt_brRacunaKompanije.Text);을 쓸 때 다른 인코딩을 사용하는 다른 환경을 사용하여 코드를 컴파일하거나 실행할 때 사라질 수있는 특수 문자를 코드에 삽입하기 때문에 나쁜 코드 (적어도 Java를 작성하는 경우)를 작성하고있는 것입니다.
  2. 그런 다음 필요한 글리프 그리기 방법을 알고있는 글꼴 프로그램을 제공해야합니다. 예를 들어 : Helvetica는 CP1250에 대해 알지 못하지만 arial.ttf는 (다른 많은 글꼴을 수행하지만 먼저 확인해야합니다.)
  3. 그런 다음 어떻게 그 글꼴을 사용할 것인지 결정해야합니다. 글꼴을 간단한 글꼴로 사용하려면 을 만드는 EncodingExample에서 완료하거나 UnicodeExample에서 수행하는대로 this PDF을 만들면서 글꼴을 복합 글꼴로 포함합니다. 두 PDF 모두 귀하와 동일하게 보일 수 있지만 그렇지 않습니다. 선택은 응용 프로그램의 디자인에 영향을 미칩니다.
  4. 글꼴에 대한 결정을 내리고 Font 개체를 생성하면 (예 : font이라는 이름을 사용하는 경우 Paragraph을 만들 때 해당 개체를 사용해야합니다.
+0

죄송합니다.하지만 실패한 시도가 있습니다. 나는 당신의 코멘트를보고 나는 그것을 시도하고, 디폴트 글꼴 isnt Helvetica, 그것의 Microsoft Sans Serif. 폰트 패밀리에서는 무엇을 설정할 지 모릅니다. 나는 택배, helvetica, 상징, times_roman, undefined 및 zapfdingbats 만 조작했습니다. 당신이 제공하는 예제들은 이해하지 못합니다. rtf에서 1250을 찾았습니다. "{\\ rtf1 \\ ansi \\ ansicpg1250 \\ deff0 \\ deflang9242 {\\ fonttbl {\\ f0 \\ fnil \\ fcharset238 Microsoft Sans Serif;}} \ r \ n \\ viewkind4 \ \ uc1 \\ pard \\ f0 \\ fs17 \\ par \ r \ n – ReadyToWork

+0

왜 바퀴를 재발 명하려고합니까?많은 개발자가 성공하기 전에, 필자가 쓴 책의 예제를 시험해보기 만하면됩니다. http://tinyurl.com/itextsharpIIA2C11이 예제를 이해하지 못하면 책을 읽어야합니다. 언급 한 글꼴 (courier, helvetica, symbol, ...)은 CP1250을 지원하지 않습니다. '.ttf'와 같은 글꼴 프로그램을 제공해야합니다. 예제는'c :/windows/fonts' 디렉토리에서 그러한 파일을 찾을 수 있음을 보여줍니다. 좋은 장인은 그의 도구를 비난하지 않는다! –